C#堆排序代码
发布时间:2020-12-15 17:57:08 所属栏目:百科 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 ? 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(lis
|
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考
?
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,i - 1);
}
}
以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
