各大排序演算法

2021-09-26 23:45:12 字數 789 閱讀 3254

後面慢慢完善

#includeint h[101];//用來存放堆的陣列 

int n; //用來儲存堆中元素的個數,也就是堆的大小

//交換函式,用來交換堆中的兩個元素的值

void swap(int x, int y)

//向下調整函式

//傳入乙個需要向下調整的結點編號i,

//這裡傳入1,即從堆的頂點開始向下調整

void siftdown(int i) else

//如果它有右兒子,再對右兒子進行討論

if (i * 2 + 1 <= n)

} //如果發現最小的結點編號不是自己,說明子結點中有比父結點更小的

if (t != i) else

} return;

} //建立堆的函式

void create()

return;

}//刪除最大的元素

int deletemax()

int main()

n = num;

//建堆

create();

//刪除頂部元素,連續刪除n次,其實就是從大到小把數輸出來

for (i = 1; i <= num; i++)

getchar();

getchar();

return 0;

}

各大排序演算法比較

一 各種演算法比較序號 排序類別 時間複雜度 空間複雜度穩定1 插入排序 o n2 1 2希爾排序 o n2 1 3氣泡排序 o n2 1 4選擇排序 o n2 1 5快速排序 o nlogn o logn 6 堆排序o nlogn 1 7歸併排序 o nlogn o n 1氣泡排序 bubble ...

各大排序演算法自己總結

1.歸併排序 把十個數進行從小到大排序 每一次都把陣列分成兩部分,然後進行排序,然後把兩部分排好序再合併到一起,一次進行下去直到只剩下乙個元素,結束。時間複雜度為o n logn 快速排序也是分治演算法的經典例子。下面 和注釋自己純手敲的.include includeusing namespace...

回顧Java各大排序演算法(持續更新)

馬上大四了,面試前複習下基本的排序演算法,然後寫出來整理下。氣泡排序 param array 待排序的陣列 public static void bubblesort int array 選擇排序 param arr 待排序的陣列 public static void selectionsort i...