1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 排序算法(Sorting)——快速排序

排序算法(Sorting)——快速排序

时间:2019-08-02 07:36:04

相关推荐

排序算法(Sorting)——快速排序

每次排序的时候设置一个基准点,将小于等于基准点的数全部放到基准点的左边,将大于等于基准点的数全部放到基准点的右边。

其实快速排序是基于一种叫做“二分”的思想。

#include<iostream>using namespace std;int const M=1001;int a[M];int N;void Quicksort(int left,int right){int i,j,t,temp;if(left>right)return ;temp=a[left];//将第一个数作为第一个基准数 i=left;j=right;while(i!=j){while(a[j]>=temp && i<j)j--;//从右往左找 while(a[i]<=temp && i<j)i++;//从左往右找 if(i<j){t=a[i];a[i]=a[j];a[j]=t;}}//将数据一分为二,小于基准数的一组和大于基准数的一组//此时,i=j,基准数的大小处于所有数据的中间a[left]=a[i];a[i]=temp;Quicksort(left,i-1);Quicksort(i+1,right);}int main(){cin>>N;for(int i=1;i<=N;i++)cin>>a[i];Quicksort(1,N);for(int i=1;i<=N;i++)cout<<a[i]<<" ";return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。