快速排序(quickSort)是对冒泡排序的一种改进。
其基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
- 图解
2.简单定义
#include<stdio.h>
#include<stdlib.h>
3.快速排序
void quickSort(int a[],int left,int right){
int i,j,temp;
i=left;
j=right;
temp=a[i];
if(left<right){
while(i<j){
while((a[j]>=temp)&&(i<j)){
j--;
}
a[i]=a[j];
while((a[i]<=temp)&&(i<j)){
i++;
}
a[j]=a[i];
}
a[i]=temp;
quickSort(a,left,i-1);
quickSort(a,j+1,right);
}
}
4.主方法
int main(){
int a[]={30,40,10,50,20};
quickSort(a,0,5);
int x;
printf("运行结果:");
for(x=0;x<5;x++){
printf("%d ",a[x]);
}
return 0;
}
运行结果
刚开始写博客,写的很生涩,勿喷。