public class paixu
system.out.println("排序後");
// a= bubble(a);
// a=select(a);
// a = insert(a);
// a=shell(a,a.length);
guibing(a,0,a.length-1);
// fast(a,0,a.length-1);
for (int i = 0; i < a.length; i++)
}//歸併排序:先採用遞迴法,將陣列分為單個的陣列,這樣就可以認為是有序的,然後,將兩兩陣列有序合併起來
private static void guibing(int a, int i, int i1 ) else p[b++]=a[low++];
}while (low<=m)
while (j<=hight)
for ( low=0;lowk)
int h=arr[length];
arr[length]=arr[i];
arr[i]=h;
while (i= 0&&k < arr[j]; j--)
arr[j + 1] = k;}}
return arr;
}// 希爾排序:插入排序的改版,設定乙個增量r=r/3+1,利用增量將陣列進行分組,
// 每一組直接進行插入排序,直到r=1時全部再進行一次直接插入排序,這樣做是因為
//直接插入排序在元素基本有序的情況下(接近最好情況),效率是很高的,
// 最好時間複雜度為o[n],最壞為o[n^r](1= 0 && k < arr[j]; j = j - r)
arr[j + r] = k;}}
}while (r>1);
return arr;
}//選擇排序:從0個開始,迴圈到最後乙個,每一輪裡面,
// 設定它為最小值,用其他數來跟它比較,若是有比它小的,記下下標,
//用小的繼續比較,最後才進行交換,最壞時間複雜度為o[n^2],最好時間複雜度為o[n^2];平均複雜度為o[n^2]
private static int select(int arr)
}if (min != i)
}return arr;
}//氣泡排序:從0個開始,迴圈到最後乙個,每一輪裡面,
// 陣列從後往前,不斷比較,小的數往前交換,這樣一輪過後,最小的數就在最前面,
// 如果,發現有一趟沒有進行過交換,那麼就說明已經全部排好序,提前結束迴圈,排序結束;
//最壞時間複雜度o[n^2],最好時間複雜度o[n],平均複雜度為o[n^2]
private static int bubble(int arr) }}
return arr;
}}
Golang實現常用六大排序演算法
使用golang實現了以下排序演算法 package main import fmt math rand sort time const num 10000 測試陣列的長度 rangenum 100000 陣列元素大小範圍 func main 生成隨機數組 func generaterand int...
常見六大排序演算法詳解以及比較
氣泡排序 英語 bubble sort 是一種簡單的排序演算法。它重複地遍歷要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。遍歷數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢 浮 到數列的頂端。氣泡排序演算...
六大排序(選擇,插入,冒泡,希爾,快排,堆排序)
1.實現簡單選擇排序 直接插入排序和氣泡排序。2.實現希爾排序演算法。3.實現快速排序演算法。4.實現堆排序演算法。想想這麼多排序方法,乍一看挺複雜,寫起來還挺簡單的 include include include include include include include includeusi...