分治—快速排序
**
快速排序
**
陣列排序任務可以如下完成:
1)設k=a[0],將k挪到適當位置,使得比k小的元素都在k的左邊,比k大的元素都在k的右邊,和k相等的,不關心,在k左右出現均可
2)把k左邊的部分快速排序
3)把k右邊的部分快速排序
程式設計方法:c++
#include <iostream>
using namespace std;
void swap(int &a,int &b){
int temp=a;
a=b;
b=temp;
}
void QuickSort(int a[],int s,int e){
if(s>=e)
return;
int k=a[s];
int i=s,j=e;
while(i<j){
while(i<j&&a[j]>=k)
j--;
swap(a[i],a[j]);
while(i<j&&a[i]<=k)
i++;
swap(a[i],a[j]);
}
QuickSort(a,s,i-1);
QuickSort(a,i+1,e);
}
int a[10]={13,27,19,2,8,12,2,8,30,89};
int main()
{
int size=sizeof(a)/sizeof(int);
QuickSort(a,0,size-1);
for(int i=0;i<size;i++)
cout<<a[i]<<' ';
cout<<endl;
return 0;
}
相關文章
- 挖坑填數+分治法:快速排序排序
- 分治思想--快速排序解決TopK問題排序TopK
- 資料結構 8 基礎排序演算法詳解、快速排序的實現、瞭解分治法資料結構排序演算法
- 歸併排序(C++_分治遞迴)排序C++遞迴
- 排序之快速排序排序
- 排序:氣泡排序&快速排序排序
- 快速排序排序
- 快速排序&&歸併排序排序
- 從零開始學資料結構和演算法 (五) 分治法 (二分查詢、快速排序、歸併排序)資料結構演算法排序
- 快速排序快速入門排序
- 排序演算法__快速排序排序演算法
- 排序演算法:快速排序排序演算法
- 選擇排序和快速排序排序
- 四、歸併排序 && 快速排序排序
- 排序演算法 - 快速排序排序演算法
- javascript 快速排序JavaScript排序
- 快速排序javaScript排序JavaScript
- js 快速排序JS排序
- 快速排序-java排序Java
- LeetCode:快速排序LeetCode排序
- 快速排序法排序
- java 快速排序Java排序
- python 快速排序Python排序
- php插入排序,快速排序,歸併排序,堆排序PHP排序
- 排序演算法之 '快速排序'排序演算法
- 遞迴-*快速排序遞迴排序
- 快速排序 (Quick Sort)排序UI
- 快速排序C++排序C++
- 三種快速排序排序
- 8.22_快速排序排序
- 簡單快速排序排序
- 圖解快速排序圖解排序
- 堆排序和快速排序效能比較排序
- php實現 歸併排序,快速排序PHP排序
- 樹分治 - 點分治
- 氣泡排序、歸併排序與快速排序比較排序
- Sorting 排序演算法: Quick Sort 快速排序排序演算法UI
- Go實現氣泡排序和快速排序Go排序