DS內排 堆排序

2021-09-05 10:33:42 字數 1051 閱讀 6026

給定一組資料,使用堆排序完成資料的降序排序。(建小頂堆)。

資料個數n,n個整數資料

初始建立的小頂堆序列

每趟交換、篩選後的資料序列,輸出格式見樣例

8 34 23 677 2 1 453 3 7

8 1 2 3 7 23 453 677 34

8 2 7 3 34 23 453 677 1

8 3 7 453 34 23 677 2 1

8 7 23 453 34 677 3 2 1

8 23 34 453 677 7 3 2 1

8 34 677 453 23 7 3 2 1

8 453 677 34 23 7 3 2 1

8 677 453 34 23 7 3 2 1

#include#include#include#includeusing namespace std;

void changpos(int *array, int left, int right, int pos, int n)

break;

}else if(left> n&&right> n)

break;

else

else if(array[pos]> array[right]&&array[pos]<= array[left])

else if(array[pos]> array[right]&&array[pos]> array[left])

int temp= array[pos];

array[pos]= min;

array[po]= temp;

pos= po;

left= pos* 2;

right= pos* 2+ 1;

}else

break;}}

}int main()

print(array, n);

int end= n;

while(end> 1)

return 0;

}

DS內排 直插排序

題目問題 e ds內排 直插排序 時間限制 1 sec 記憶體限制 128 mb 提交 208 解決 185 提交 狀態 討論版 題目描述 給定一組資料,使用直插排序完成資料的公升序排序。程式要求 若使用c 只能include乙個標頭檔案iostream 若使用c語言只能include乙個標頭檔案s...

DS內排 直插排序

題目描述給定一組資料,使用直插排序完成資料的公升序排序。程式要求 若使用c 只能include乙個標頭檔案iostream 若使用c語言只能include乙個標頭檔案stdio 程式中若include多過乙個標頭檔案,不看 作0分處理 不允許使用第三方物件或函式實現本題的要求 輸入 資料個數n,n個...

快排 堆排序

快速排序主要運用了二分的思想,每次選擇乙個基準元素,比基準元素打的元素都放在基準元素前面,比基準元素小的元素都放在基準元素後面,這樣不斷遞迴細分,完成排序。void quicksort int a,int l,int r if ia i a j i while ia i temp if ia j a...