由於時間倉促,本文先展示實現**,後續抽空進行思路的補充。
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 的幾種排序方法中效率高,因此經常被採用,特別是隨機快排在工程實際中用到的非常多。快速排序的思想和荷蘭國旗的一樣,我們這裡再次回顧一次。快速排序 將乙個陣列進行排序,選擇最後乙個數作為基準,小於這個數的所有元素放左邊,等於這個...