算法导论--快速排序

来源:互联网 发布:java开源报表系统 编辑:程序博客网 时间:2024/06/03 17:36

快速排序代码实现:

#include<iostream>#include<string>#include<memory.h>#include<cstdio>#include<string>#define NUM 305using namespace std;int charaNum[NUM]  ;//存放数据的数组int Partition(int * A ,int left ,int right){    int key = A[right];    int i = left - 1;//left 到i的部分都是小于key的。    for(int j = left; j<=right-1;j++)//i到j的部分都是大于key的。    {        if(A[j]<key)        {            i++;            swap(A[i],A[j]);        }    }    swap(A[i+1],A[right]);    return i+1;}void QuickSort(int * A ,int left ,int right){    if(left<right)    {        int p = Partition(A,left,right);        QuickSort(A,left,p-1);        QuickSort(A,p+1,right);    }}int main(){    freopen("in.txt","r",stdin);    int num ;    while(cin>>num)    {        for(int i = 0;i<num;i++)        {            cin>>charaNum[i];        }        QuickSort(charaNum,0,num-1);        for(int i = 0;i<num;i++)        {            cout<<charaNum[i]<<" ";        }        cout<<endl;    }}

输入:

1016 4 10 14 7 9 3 2 8 1

输出:

1 2 3 4 7 8 9 10 14 16

0 0
原创粉丝点击