java 排序

来源:互联网 发布:paxos算法执行过程 编辑:程序博客网 时间:2024/06/08 04:50

冒泡排序(两两比较,交换顺序)

//冒泡排序(两两比较,换位)public static int[] bubble(int[] arr){for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr.length-i-1; j++) {if(arr[j]<=arr[j+1]){int temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}return arr;}

//选择排序(找出最大,放到已经排好的序列后面)

public static int[] selection(int[] arr){for (int i = 0; i < arr.length; i++) {int temp =arr[i];int temp1 = i;for (int j = i; j < arr.length-1; j++) {temp = arr[j+1]>temp ? arr[j+1]:temp;}for (int j = i; j < arr.length; j++) {if(temp==arr[j]){temp1=j;}}int temp3 = arr[i];arr[i] = arr[temp1];arr[temp1] = temp3;}return arr;}
@Test//选择排序public void selectSort(){int[] c = {23,12,34,56,4,7,13};//假定待排序数组的第一个元素为最小值,将它与其后的每一个元素进行比较,最终确定在这个待排序数组中最小值元素的位置,最后判断最小值元素是否为第一个元素,//如果不是,交换 for(int i=0;i<c.length-1;i++){int temp ;int minIndex = i;//假定第一个元素是最小值for(int j=i+1;j<c.length;j++){if(c[minIndex]>c[j]){minIndex = j;}}if(minIndex!=i){temp = c[minIndex];c[minIndex] = c[i];c[i] = temp;}}for (int i : c) {System.out.println(i);}}

插入排序(依次插入前面的序列)

public static int[] insert(int[] arr){for (int i = 0; i < arr.length-1; i++) {for (int j = 0; j < i+1; j++) {if(arr[i+1]>arr[j]){int temp = arr[i+1];for (int k = i+1; k > j; k--) {arr[k]=arr[k-1];}arr[j] =temp;break;}}}return arr;}

//插入排序@Testpublic void insertSort(){int[] c = {23,12,34,56,4,7,13};//12,23,34for(int i=1;i<c.length;i++){//自第二位起,一次取一个待排序的元素int temp=c[i];int j=i-1;while(j>=0&&temp<c[j]){c[j+1]=c[j];j=j-1;}c[j+1]=temp;}for (int i : c) {System.out.println(i);}}


@Test//插入排序public void insertSort1(){int[] c = {23,12,34,56,4,7,13};//12,23,34for(int i=1;i<c.length;i++){//自第二位起,一次取一个待排序的元素int temp=c[i];int j=0;for(j=i-1;j>=0&&c[j]>temp;j--){//将i之前的每一个比temp要大的元素都后一移一位c[j+1]=c[j];}c[j+1]=temp;}for (int i : c) {System.out.println(i);}}


0 0
原创粉丝点击