插入排序的改進演算法,不穩定的排序演算法,空間複雜度為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...