希爾排序,堆排序,快速排序

2021-07-25 16:00:14 字數 1000 閱讀 4820

插入排序的改進演算法,不穩定的排序演算法,空間複雜度為o(1)

public

static

void

shellsort(int a)}}

}

氣泡排序的改進演算法,不穩定的排序演算法

空間複雜度在o(log2n)和o(n)之間

時間複雜度在o(n)和o(n2)之間,平均時間複雜度為o(nlog2n),而當陣列初始有序的條件下,快速排序會退化為氣泡排序

//一趟快速排序演算法

public

static

intpartition(int i,int j)

if (j>i)

while (temp>=a[i]&&j>i)

if (j>i)

}a[i]=temp;

return i;

}//static int count=0;

//遞迴呼叫partition()函式,進行多趟排序直至整個陣列有序

public

static

void

qsort(int low,int high)

}public

static

void

quicksort(int a)

樹形排序的改進型排序演算法,不穩定的排序演算法

空間複雜度o(1)

時間複雜度o(nlog2n)

public

static

void

shift(int low,int high)

if (a[i]>a[j]) else

}a[i]=temp;

}public

static

void

heapsort()

//將最小關鍵字值交換到後面,再調整堆

for (int i=len-1;i>0;i--)

}

希爾排序,快速排序,堆排序

最近在準備資料結構的考試,於是用部落格記錄下自己複習的過程。今天的內容是三種高階排序。希爾排序 當序列增量為incr k 2 t k 1 1時,時間複雜度為o n1.5 以序列增量分組,對每組進行大小調整。templatevoid shellinsert t elem,int n,int incr ...

希爾排序,堆排序,快速排序

希爾排序 最優情況下 時間複雜度為 o n 1.3 最差的情況下為 o n 2 增量序列的最後乙個增量值必須等於1 shell sort vector v1 堆排序 void heapadjust int a,int m,int n for i n i 1 i 快速排序 快排在樞紐選取時可以優化,三...

幾種排序,希爾排序,快速排序,堆排序,歸併排序

因為最近看了一點stl,所以用vector代替了陣列,從別的地方借鑑了很多,只是簡單的實現,也沒有做什麼優化,其實也不會 include include includeusing namespace std void print vectorv swap v left v high quick so...