快速排序(C语言实现)

来源:互联网 发布:正版黑界扣字软件下载 编辑:程序博客网 时间:2024/06/06 01:38

以前使用RM时,ruby脚本提供一个sort函数,可以把数组进行排序,后来得知采用的算法是快速排序。
随着数据结构课程的学习,
快速排序如今也不再神秘,
代码如下

#include <iostream>using namespace std;void Quicksort(int a[],int low,int high){    if(low>=high)    {        return;    }    int first=low;    int last=high;    int key=a[first];    while(first!=last)    {        while(first<high and a[first]<key)            first++;        while(last>low and a[last]>key)            last--;        if(first<last)        {            int temp = a[first];            a[first] = a[last];            a[last] = temp;        }    }    a[first]=key;    Quicksort(a,low,first-1);    Quicksort(a,last+1,high);}int main(){    int i,a[100],x,n=0;    cin>>n;    for(i=0; i<n; i++)        cin>>a[i];    Quicksort(a,0,n-1);    for(i=0; i<=n-1; i++)        cout<<a[i]<<" ";    cout<<endl;    return 0;}
0 0
原创粉丝点击