C 中常見排序方法

2021-08-03 01:33:57 字數 1292 閱讀 3983

快速排序、堆排序、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...