/**
简单算法--快排
递归实现,非稳定排序,当全部逆序,时间复杂度为O(n^2)
*/
#include <iostream>
const int SIZE = 10;
using namespace std;
void Qsort(int data[],int low,int high){
if(low >= high ){
return;
}
int first = low;
int last = high;
int key = data[first];//键值
while (first < last){
while (first < last && data[last] >= key)
last--;
data[first] = data[last];
while (first < last && data[first] <= key)
first++;
data[last] = data[first];
}
data[first] = key;//数列有序键值所在位置
//键值前方递归快排
Qsort(data,low,first-1);
//键值后方递归快排
Qsort(data,first+1,high);
}
int main(){
int data[SIZE]={9,8,7,6,5,4,3,2,1,0};
Qsort(data,0,SIZE-1);
for(int i = 0 ; i < SIZE ; i++){
cout<<data[i]<<" ";
}
cout<<endl;
return 0;
}
假期简单算法--快排
最新推荐文章于 2024-10-16 19:08:56 发布