排序算法-快速排序
程序员文章站
2024-02-27 18:30:09
...
快速排序:
主要思想是:
1.设置基准值,设置第一个元素为基准:
2.从右端开始,找到第一个小于基准的值,然后将该值放入a[i]
3.从左端开始,找到第一个大于基准的值,然后将该值放入a[j]
代码实现如下:
void quick_sort(int *a,int low,int high)
{
if(low >= high)
return;
int i=low,j=high;
int data=a[low];
while(i<j){
while(i<j&&a[j]>=data){
j--;
}
if (i < j)
a[i++]=a[j];
while(i<j&&a[i]<=data){
i++;
}
if (i < j)
a[j--]=a[i];
}
a[i]=data;
quick_sort(a,low,i-1);
quick_sort(a,i+1,high);
}
#include <iostream>
using namespace std;
int main()
{
int a[10]={1,2,5,6,3,4,18,6,3,0};
int i=0;
while(i<=9){
printf("%d,",a[i++]);
}
printf("\n");
quick_sort(a,0,9);
i=0;
while(i<=9){
printf("%d,",a[i++]);
}
return 0;
}