快速排序(quick_sort)
2018-03-12 22:38
381 查看
快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
分析:
第一个为关键字,依次与其比较,i为其位置,j为下一个比较数,如果大于关键字,j继续后移,没有其他操作;如果小于关键字,j处的数与i处进行交换,i、j均要后移。最后,将关键字与i处互换即可。
代码实现:
分析:
第一个为关键字,依次与其比较,i为其位置,j为下一个比较数,如果大于关键字,j继续后移,没有其他操作;如果小于关键字,j处的数与i处进行交换,i、j均要后移。最后,将关键字与i处互换即可。
代码实现:
#include <bits/stdc++.h> using namespace std; int mid(int *a,int l,int r){ int i=l+1; int temp=a[l];//取第一个为关键字 for(int j=l+1;j<=r;j++){ if(a[j]<temp){ swap(a[i++],a[j]);//小于关键字的交换 } } swap(a[l],a[i-1]);//交换关键字 return i-1; } void quick_sort(int *a,int l,int r){ if(l>=r) return; int p = mid(a,l,r);//进行关键字比较,返回关键字位置 quick_sort(a,l,p-1);//关键字左边递归 quick_sort(a,p+1,r);//关键字右边递归 } int main(){ int n; cin>>n; int arr ; for(int i=0;i<n;i++){ cin>>arr[i]; } quick_sort(arr,0,n-1); for(int i=0;i<n;i++) cout<<arr[i]<<" "; return 0; }
相关文章推荐
- 快速排序(Quick_Sort)
- 排序算法之快速排序(quick_sort)
- Algorithm: quick sort implemented in python 算法导论 快速排序
- 算法导论——快速排序(Quick-Sort)
- 快速排序(Quick-Sort)
- 快速排序的简单实现(Quick_Sort)
- 【数据结构笔记】快速排序(quick_sort)和快速选择(quick_select)--Python2.7
- 快速排序的简单实现(Quick_Sort)
- 快速排序(Quick-Sort)
- quick_sort(快速排序)c语言实现
- 排序_Quick_Sort(快速排序)
- 迭代的快速排序(Iterative Quick Sort)
- C标准库中的快速排序(quick-sort)函数 [简单应用]
- 快速排序(quick-sort)
- java quick sort(快速排序)
- 排序——快速排序(quick_sort)
- NSMutaleArray Quick Sort
- 数据排序谁最快(javascript中的Array.prototype.sort PK 快速排序)
- Array.Sort和快速排序
- Quick sort C# code(2)