快速排序

来源:互联网 发布:软件开发工资待遇 编辑:程序博客网 时间:2024/06/08 09:39

快速排序:

时间复杂度:O(nlogn)

空间复杂度:O(nlogn)-------递归使用栈空间

代码实现:

#include <stdio.h>#include <iostream>using namespace std;int partition(int *data,int start,int end){int first=data[start];while (start<end){while (start<end && data[end]>first){end--;}data[start]=data[end];while(start<end && data[start]<=first){start++;}data[end]=data[start];}data[start]=first;return start;}void QuickSort(int *data,int start,int end){if (start>=end){return ;}int temp=partition(data,start,end);QuickSort(data,start,temp);QuickSort(data,temp+1,end);}int main(int argc,char *argv[]){int data[]={20,10,50,30,70,40,80,60,90};QuickSort(data,0,8);for (int i=0;i<9;i++){cout<<data[i]<<endl;}return 0;}