中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

數據結構-選擇排序

發布時間:2020-07-03 03:13:06 來源:網絡 閱讀:283 作者:2013221 欄目:編程語言
  • 選擇排序

    1.選擇排序

//堆排序,向下調整子函數

void AdjustDown(int *a, size_t size, size_t root)

{

size_t parent = root;

size_t child = parent * 2 + 1;

while (child < size)

{

//選擇孩子節點中較大的節點,與父親節點交換

if (child + 1 < size&&a[child + 1] > a[child])

{

++child;

}

if (a[child]>a[parent])

{

swap(a[child], a[parent]);

parent = child;

child = parent * 2 + 1;

}

else

{

break;

}

}

}

//堆排序

void HeapSort(int *a, size_t size)

{

assert(a);

//建立大根堆

for (int i = (size - 2) / 2; i >= 0; --i)

{

AdjustDown(a, size, i);

}

//排序,把最大的元素放在最后一個位置上

for (size_t i = 0; i < size; ++i)

{

swap(a[0], a[size - i - 1]);

AdjustDown(a, size - i - 1, 0);

}

}


  • 2.堆排序

//選擇排序

void SelectSort(int *a, size_t size)

{

//選出最大數值的下標,進行交換

int maxindex;

for (size_t i = 0; i < size; ++i)

{

maxindex = 0;

for (size_t j = 0; j < size - i ; ++j)

{

if (a[j]>a[maxindex])

{

maxindex = j;

}

}

swap(a[maxindex], a[size - i - 1]);

}

}

//選擇排序的優化

//同事挑選出最小與最大的數據

void SelectSort_OP(int *a, size_t size)

{

assert(a);

size_t left = 0;

size_t right = size - 1;

while (left < right)

{

for (size_t i = left; i <= right; i++)

{

if (a[i] < a[left])

{

swap(a[i], a[left]);

}

if (a[i]>a[right])

{

swap(a[i], a[right]);

}

}

++left;

--right;

}

}

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

钟祥市| 广宗县| 靖州| 新巴尔虎左旗| 缙云县| 德安县| 常熟市| 德昌县| 郴州市| 宁河县| 德化县| 乌什县| 伊金霍洛旗| 新绛县| 北海市| 横山县| 尚义县| 满城县| 通化市| 英山县| 广元市| 雷州市| 绥宁县| 阳江市| 沁阳市| 万载县| 佳木斯市| 柘荣县| 安远县| 宁武县| 海伦市| 乌什县| 揭阳市| 鸡东县| 陇川县| 从化市| 抚顺县| 九龙坡区| 葫芦岛市| 余庆县| 巍山|