快速排序是对冒泡排序的一种改进,冒泡排序一次只能移动一次,而快速排序一次就能将大于轴值的数移动到轴值的后面(升序),减少了移动的次数
#include<iostream>
using namespace std;
int oneSort(
int a[],
int x,
int y);
void qSort(
int a[],
int,
int);
int main(){
int a[]={
3,
6,
5,
9,
7,
1,
8,
2,
4};
int n=
sizeof(a)/
sizeof(
int);
qSort(a,
0,n-
1);
for(
int i=
0;i<n;i++)
cout<<a[i]<<
" ";
cout<<endl;
return 0;
}
int oneSort(
int a[],
int x,
int y){
int i=x;
int j=y;
int tmp=a[x];
while(i<j){
while(tmp<a[j]&&i<j)
j--;
if(i<j){
a[i]=a[j];
i++;
}
while(a[i]<tmp&&i<j)
i++;
if(i<j){
a[j]=a[i];
j--;
}
}
a[i]=tmp;
return i;
}
void qSort(
int a[],
int x,
int y){
if(x<y){
int k=oneSort(a,x,y);
qSort(a,x,k-
1);
qSort(a,k+
1,y);
}
}
转载请注明原文地址: https://ju.6miu.com/read-1297734.html