Java中简单的2个排序(冒泡排序,选择排序)

用Arrays带有的排序方法快速排序

 代码如下 复制代码

import java.util.Arrays;
public class Test2{
        public static void main(String[] args){
                int[] a={5,4,2,4,9,1};
                Arrays.sort(a);  //进行排序
                for(int i: a){
                        System.out.print(i);
                }
        }
}

插入排序算法

 代码如下 复制代码

public static int[] insertSort(int[] args){//插入排序算法
                for(int i=1;i<args.length;i++){
                        for(int j=i;j>0;j--){
                                if (args[j]<args[j-1]){
                                        int temp=args[j-1];
                                        args[j-1]=args[j];
                                        args[j]=temp;       
                                }else break;
                        }
                }
                return args;
        }

冒泡排序:

 代码如下 复制代码

public static void bubbleSort(int[] arr){

for(int x=0;x<arr.length-1;x++){

for(int y=0;y<arr.length-x-1;y++){

if(arr[y]>arr[y+1]){

swap(arr, y, y+1);

}

}

}

}

/**

* 换位操作

* @param arr传入的数组

* @param a

* @param b

*/

private static void swap(int[] arr,int a ,int b){

int temp=arr[a];

arr[a]=arr[b];

arr[b]=temp;

}

选择排序:

 代码如下 复制代码

 /***

* @param arr 传入的数组

* 选择排序

*/  public static void selectSort(int[] arr){

for(int x=0;x<arr.length-1;x++){

for(int y=x+1;y<arr.length;y++){

if(arr[x]<arr[y]){

swap(arr, x, y);

}

}

}

}

时间: 2024-07-31 00:36:54

Java中简单的2个排序(冒泡排序,选择排序)的相关文章

java中简单的线程问题

问题描述 java中简单的线程问题 我只创建了一个对象,为何运行的时候会有两个第五张票出现?即便是把上面的tickets变量加上static也是同样的结果 解决方案 加不加static与是否会发生多线程冲突无关,你需要在执行代码处加个锁防止多个线程同时调用一个对象 解决方案二: 源代码发我一下,多线程就是指多个对象对某个RUN方法多次调用. 解决方案三: 线程同步问题吧... 最好贴个代码出来. 解决方案四: 如果不想修改代码,也找不到错误,那么就在要执行逻辑代码之前去下重呗,虽然这样不合理.

java数组排序示例(冒泡排序、快速排序、希尔排序、选择排序)_java

快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现. 冒泡法是运用遍历数组进行比较,通过不断的比较将最小值或者最大值一个一个的遍历出来. 选择排序法是将数组的第一个数据作为最大或者最小的值,然后通过比较循环,输出有序的数组. 插入排序是选择一个数组中的数据,通过不断的插入比较最后进行排序. 复制代码 代码如下: package com.firewolf.sort; public class MySort {  /**  * @param args  */ public

用c语言实现冒泡排序,选择排序,快速排序_C 语言

代码如下所示: 复制代码 代码如下: /* * 冒泡排序 */void BubbleSort(int arr[], int n){ int temp; for (int i = 0; i < n - 1; i++) {  for (int j = i + 1; j < n; j++)  {   if (arr[i] > arr[j])   {    temp = arr[i];    arr[i] = arr[j];    arr[j] = temp;   }  } }}/* * 选择排

算法速成(二)七大经典排序之选择排序

今天说的是选择排序,包括"直接选择排序"和"堆排序". 话说上次"冒泡排序"被快 排虐了,而且"快排"赢得了内库的重用,众兄弟自然眼红,非要找快排一比高下. 这不今天 就来了两兄弟找快排算账. 1.直接选择排序: 先上图: 说实话,直接选择排序最类似于人的本能思想,比如把大小不一的玩具让三岁小毛孩对大小 排个序, 那小孩首先会在这么多玩具中找到最小的放在第一位,然后找到次小的放在第二位, 以此类推...... ,小 孩子多聪明

排序高级之选择排序_选择排序

选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理如下.首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾.以此类推,直到所有元素均排序完毕. 选择排序的主要优点与数据移动有关.如果某个元素位于正确的最终位置上,则它不会被移动.选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对n个元素的表进行排序总共进行至多n-1次交换.在所有的完全依靠交换去移动元素的排序方

c++ 选择排序-用选择排序的方法对一个有超过100万的数组进行排序

问题描述 用选择排序的方法对一个有超过100万的数组进行排序 我想请教大家,老师让我们用选择排序来对一个有2^20个元素和一个有2^24个元素的数组进行排序并且计算总的操作数.我利用堆分配和教材上的选择排序的代码可以完成对2^16个元素的素组进行排序. 但是对于更大的数组,在编译上没有报错,执行的时候等了很长时间都得不到结果. 我想问一下是内存分配的问题还是有什么别的原因

java中利用Comparator进行复杂对象Collection的排序

需求场景描述: 需要对一个Collection进行某种方式的排序.比如一个User对象的集合,我们需要按公司和姓名进行排序.User对象如下:  代码如下 复制代码 package com.guoweiwei.test.comparator; public class User { private String name; private String sex; private String company; User(){}; User(String name, String sex, Str

Oracle中简单查询、限定查询、数据排序SQL语句范例和详细注解_oracle

一.简单查询 SQL(Structured Query Language) 结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理关系数据库系统.ANSI(美国国家标准学会)声称,SQL是关系数据库管理系统的标准语言. Oracle数据库之所以发展的很好,主要也是因为Oracle是全世界最早采用SQL语句的数据库产品. SQL功能强大,概括起来,它可以分成以下几组: 复制代码 代码如下: DML(Data Manipulation Language) 数据操作语言,用于

java中简单工厂模式、工厂方法模式、抽象工厂模式介绍

工厂模式适合凡是出现大量对象需要创建,而且这些对象拥有相同的接口,可以使用工厂模式进行创建. 简单工厂模式 简单工厂模式分为三种:普通工厂模式.多个方法工厂模式.静态方法工厂模式 -------------------------------------------------------------------------------- 以发送QQ消息或者微信消息为例来说明: 普通工厂模式 /**  * 两种共同的接口  */ public interface Message {     pu