1.歸併排序
把十個數進行從小到大排序;每一次都把陣列分成兩部分,然後進行排序,然後把兩部分排好序再合併到一起,一次進行下去直到只剩下乙個元素,結束。
時間複雜度為o(n*logn);快速排序也是分治演算法的經典例子。
下面**和注釋自己純手敲的...
#include#includeusing namespace std;
int a[10]=;
int b[10];//額外儲存空間
void merge(int a,int s,int m,int e,int tmp)
{ int pb=0;
int p1=s,p2=m+1;
while(p1<=m&&p2<=e)
{ if(a[p1]
各大排序演算法
後面慢慢完善 includeint h 101 用來存放堆的陣列 int n 用來儲存堆中元素的個數,也就是堆的大小 交換函式,用來交換堆中的兩個元素的值 void swap int x,int y 向下調整函式 傳入乙個需要向下調整的結點編號i,這裡傳入1,即從堆的頂點開始向下調整 void si...
各大排序演算法比較
一 各種演算法比較序號 排序類別 時間複雜度 空間複雜度穩定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 ...
回顧Java各大排序演算法(持續更新)
馬上大四了,面試前複習下基本的排序演算法,然後寫出來整理下。氣泡排序 param array 待排序的陣列 public static void bubblesort int array 選擇排序 param arr 待排序的陣列 public static void selectionsort i...