後面慢慢完善
#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...