快速排序、堆排序、c#的list自帶sort方法排序、linq、list自帶orderby排序
快排**。1000萬int資料,大約3-4秒。在unity中大概1-2秒,奇怪。
void quicksort(t a, int l, int r) where t : icomparable
a[i] = pivot;
quicksort(a, l, i - 1);
quicksort(a, i + 1, r);
}}
堆排**。1000萬 int 資料大約11秒
///
/// 堆排序
//////
//////
對大小(節點數)
void heapsort(t a, int size) where t : icomparable
for (int i = size - 1; i >= 0; i--)
}///
/// 調整堆
//////
//////
調整的節點
///堆的大小
void adjustheap(t a, int node, int size) where t : icomparable
int lchild = node * 2 + 1;
int rchild = node * 2 + 2;
int max = node;
if (lchild <= size - 1 && a[lchild].compareto(a[max]) > 0) max = lchild;
if (rchild <= size - 1 && a[rchild].compareto(a[max]) > 0) max = rchild;
if (max != node)
}
c#的list自帶sort方法排序。1000萬int資料,大約4-5秒
t listsort(listsource) where t: icomparable
linq。1000萬int資料,大約5-6秒
t linqsort(list source)
list自帶orderby排序。1000萬int資料,大約5-6秒
t listorderby(list source)
快速排序貌似還是相當快的,但是貌似list自帶的sort排序更好用一些,使用簡單,主要是不用自己寫排序演算法。 c 中常見的演算法 希爾排序
希爾排序 也稱遞減增量排序演算法,是插入排序的一種更高效的改進版本。但希爾排序是非穩定排序演算法。希爾排序是基於插入排序的以下兩點性質而提出改進方法的 1,插入排序在對幾乎已經排好序的資料操作時,效率高,即可以達到線性排序的效率 2,但插入排序一般來說是低效的,因為插入排序每次只能將資料移動一位 希...
c 中常見的演算法 氣泡排序
氣泡排序 bubble sort 是一種直觀的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢 浮 到數列的頂端。演算法思路 1,...
Java中常見的排序
冒泡法排序 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。param numbe...