五中基礎排序演算法實現細節

2021-08-22 13:40:52 字數 1356 閱讀 7900

由於時間倉促,本文先展示實現**,後續抽空進行思路的補充。

class solution 

private:

void bubblesort(std::vector

&a);

void bubblesort_2(std::vector

&a);

void selectsort(std::vector

&a);

void insertsort(std::vector

&a);

void quicksort(std::vector

&a,int left,int right);

void mergesort(std::vector

&a,int left,int right);

static

int partition(std::vector

&a,int left,int right);

static

void merge(std::vector

&a,int l1,int r1,int l2,int r2);

};void solution::bubblesort(std::vector

&a)

void solution::bubblesort_2(std::vector

&a)}}

}//冒泡相鄰比較,可能一輪中交換多次,選擇是拿出最小的,交換一次

void solution::selectsort(std::vector

&a)

else

break;

a[j+1]=tmp; //最後把待排序元素插入即可,這個位置一定可以放

}}//分治思想,將這個劃分成兩個部分,並且返回基準的位置

int solution::partition(std::vector

&a,int left,int right)

//快速排序,不穩定排序。

void solution::quicksort(std::vector

&a,int left,int right)

//歸併排序

void solution::mergesort(std::vector

&a,int left,int right)

void solution::merge(std::vector

&a,int l1,int r1,int l2,int r2)

else

}while(i<=r1)

while(j<=r2)

for(int k=l1;k<=r2;k++)

}

c 實現五種基礎的排序演算法

include using namespace std 輔助函式,交換兩數之值 template void myswap t x,t y const int size 10 一 用直接插入排序法對陣列a中元素進行公升序排序 直接插入排序的基本思想是 順序地把待排序序列中的各個記錄按其關鍵字的大小,插...

五種排序演算法實現

五種排序演算法實現 classsorter intt arr min arr min arr i arr i t 氣泡排序法實現 publicvoidsort2 intarr j privatevoidswap refintl,refintr 快速排序法實現 publicvoidsort3 intl...

演算法基礎例五快速排序

快速排序 快速排序是一種比較重要的排序方法,快速排序在同為o n logn 的幾種排序方法中效率高,因此經常被採用,特別是隨機快排在工程實際中用到的非常多。快速排序的思想和荷蘭國旗的一樣,我們這裡再次回顧一次。快速排序 將乙個陣列進行排序,選擇最後乙個數作為基準,小於這個數的所有元素放左邊,等於這個...