[algorithm.html](https://www.runoob.com/w3cnote/ten-sorting-algorithm.html
排序算法
冒泡排序
public static void bubbleSort(int[] arr){
for(int i = 0;i< arr.length-1;i++){//外層循環(huán)控制排序趟數(shù)
for(int j = 0;j< arr.length-1-i;j++){//內(nèi)層循環(huán)控制每一趟排序多少次
if(arr[j]>arr[j+1]){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
選擇排序
public static void selectSort(int[] arr){
for (int i = 0; i <arr.length-1 ; i++) {
int min = i;
for(int j = i; j < arr.length ; j++){
if(arr[j] < arr[min]){
min = j;
}
}
int temp = arr[i];
arr[i] = arr[min] ;
arr[min] = temp;
}
}
插入排序
public static void insertSort(int[] arr){
int j,temp;
for(int i = 1; i < arr.length; i++){
if(arr[i] < arr[i-1]){
temp = arr[i];
for(j= i - 1; j >= 0 && arr[j] > temp; j--){
arr[j+1] = arr[j];
}
arr[j+1] = temp;
}
}
}
插入排序的基本思路:
將較小的插入到元素的左端;
為插入的元素騰出空間,讓后將其余元素都往后移動;
需要一個圖來說明啊
希爾排序
在希爾排序時一種在出入排序的基礎(chǔ)上進(jìn)行,拓展得到的一種快速排序算法
public static void shellSort(int[] arrays){
int length = arrays.length;
int step = 1;
if( step < length/3){
step = 3 * step +1;
}
while (step >=1){
for (int i = step; i < arrays.length; i++) {
int j = i;
int temp = arrays[i];
// j - step 就是代表與它同組隔壁的元素
while (j - step >= 0 && arrays[j - step] > temp) {
arrays[j] = arrays[j - step];
j = j - step;
}
arrays[j] = temp;
}
step /=3;
}
}
歸并排序
將數(shù)組切分然后遞歸的使用~~
public static void sort(int[] arrays){
}
向上歸并 和向下遞歸并
快速排序
設(shè)置關(guān)鍵字然后分組進(jìn)行劃分,然后遞歸的排序字?jǐn)?shù)組
java中是如何實(shí)現(xiàn)的比較的艇棕?