排序练习
插入排序
public static int[] insert_sort(int arr[]){ int i = 0,temp; //插入排序 for(int j = 1;j<arr.length ;j++){ //遍历外层循环,从第2个数开始 temp=arr[j]; i=j-1; while(i>0 && arr[i]>temp){ arr[i+1]=arr[i]; i--; } arr[i+1]=temp; } return arr; }
冒泡排序
public static void bubbleSort(int arr[]){ int temp = 0 ; for(int i = 0 ;i<arr.length-1;i++){ for(int j = 0 ; j<arr.length-1-i;j++){ if(arr[j+1]<arr[j]){ temp=arr[j+1]; arr[j+1] =arr[j]; arr[j]=temp; } } } }
插入排序
public static void swap(int a[], int i, int j) { if(i == j) return; int tmp = a[i]; a[i] = a[j]; a[j] = tmp; } public static int partition(int arr[],int start,int end){ int i=start-1; int key = arr[end]; for(int j = 0 ; j<end;j++){ if(arr[j]<key){ i++; swap(arr, i, j); } } swap(arr, i+1, end); return i+1; } public static void quickSort(int array[], int start, int end) { if (start< end) { int p = partition(array, start, end); quickSort(array, start, p - 1); quickSort(array, p + 1, end); } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。