publicstaticvoidbubbleSort(int arr[]){int len = arr.length;int count =0;for(int i =0; i < len -1; i++){boolean flag =true;for(int j =0; j < len - i -1; j++){if(arr[j]> arr[j+1]){int temp = arr[j];
arr[j]= arr[j+1];
arr[j+1]= temp;
flag =false;
count++;}}if(flag){break;}}}
选择排序
publicstaticvoidselectSort(int arr[]){for(int i =0; i < arr.length-1; i++){int index=i;//标记第一个为待比较的数for(int j = i+1; j < arr.length; j++){//然后从后面遍历与第一个数比较if(arr[j]<arr[index]){//如果小,就交换最小值
index=j;//保存最小元素的下标}}//找到最小值后,将最小的值放到第一的位置,进行下一遍循环int temp=arr[index];
arr[index]=arr[i];
arr[i]=temp;}}
插入排序
publicstaticvoidinsertSort(int arr[]){for(int i =1; i < arr.length; i++){int val = arr[i], j = i;while(j >0&& val < arr[j -1]){
arr[j]= arr[j -1];
j--;}
arr[j]= val;}}
希尔排序
publicstaticvoidshellSort(int[] arr){int len = arr.length, tmp, j;for(int gap = len /2; gap >=1; gap = gap /2){for(int i = gap; i < len; i++){
tmp = arr[i];
j = i - gap;while(j >=0&& arr[j]> tmp){
arr[j + gap]= arr[j];
j -= gap;}
arr[j + gap]= tmp;}}}
归并排序
publicstaticint[]mergeSort(int[] arr){int len = arr.length;if(len <2){return arr;}int mIdx = len /2;returnmerge(mergeSort(Arrays.copyOfRange(arr,0, mIdx)),mergeSort(Arrays.copyOfRange(arr, mIdx, len)));}