C#堆排序?qū)崿F(xiàn)方法
更新時間:2015年04月02日 10:38:18 作者:令狐不聰
這篇文章主要介紹了C#堆排序?qū)崿F(xiàn)方法,實例分析了C#對排序的實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
本文實例講述了C#堆排序?qū)崿F(xiàn)方法。分享給大家供大家參考。具體如下:
private static void Adjust (int[] list, int i, int m)
{
int Temp = list[i];
int j = i * 2 + 1;
while (j <= m)
{
//more children
if(j < m)
if(list[j] < list[j + 1])
j = j + 1;
//compare roots and the older children
if(Temp < list[j])
{
list[i] = list[j];
i = j;
j = 2 * i + 1;
}
else
{
j = m + 1;
}
}
list [i] = Temp;
}
public static void HeapSort (int[] list)
{
//build the initial heap
for (int i = (list.Length - 1) / 2; i > = 0; i-)
Adjust (list, i, list.Length - 1);
//swap root node and the last heap node
for (int i = list.Length - 1; i > = 1; i-)
{
int Temp = list [0];
list [0] = list [i];
list [i] = Temp;
Adjust (list, 0, i - 1);
}
}
希望本文所述對大家的C#程序設(shè)計有所幫助。
您可能感興趣的文章:
相關(guān)文章
c#使用IAsyncEnumerable實現(xiàn)流式分段傳輸
這篇文章主要為大家詳細介紹了c#如何使用IAsyncEnumerable實現(xiàn)流式分段傳輸,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-10-10
C#中使用DataContractSerializer類實現(xiàn)深拷貝操作示例
這篇文章主要介紹了C#中使用DataContractSerializer類實現(xiàn)深拷貝操作示例,本文給出了實現(xiàn)深拷貝方法、測試深拷貝方法例子、DataContractSerializer類實現(xiàn)深拷貝的原理等內(nèi)容,需要的朋友可以參考下2015-06-06
C#探秘系列(四)——GetHashCode,ExpandoObject
這篇繼續(xù)分享下GetHashCode和ExpandoObject這兩個比較好玩的方法。2014-05-05
C#連接SQL?Sever數(shù)據(jù)庫詳細圖文教程
C#是Microsoft公司為.NET Framework推出的重量級語言,和它搭配最完美的數(shù)據(jù)庫無疑就是Microsoft SQL Server了,下面這篇文章主要給大家介紹了關(guān)于C#連接SQL?Sever數(shù)據(jù)庫的詳細圖文教程,需要的朋友可以參考下2023-06-06

