您的位置:首页 > 运维架构 > Linux

linux c 实现 快速排序

2015-05-21 19:28 176 查看
#include <stdio.h>

#include <stdlib.h>

int get_pos(int *a,int low,int high);

void quick_sort(int *a,int low,int high);

int main(int argc,char*argv[])

{

        int i;

        int a[10]={2,1,4,7,5,9,0,3,6,8};

        quick_sort(a,0,9);

        for(i=0;i<10;i++)

                printf("%d ",a[i]);

        printf("\n");

        return 0;

}

void quick_sort(int *a,int low,int high)

{

        int pos;

        if(low<high)

        {

                pos = get_pos(a,low,high);

                quick_sort(a,0,pos-1);

                quick_sort(a,pos+1,high);

        }

}

int get_pos(int *a,int low,int high)

{

        int value=a[low];

        while(low < high)

        {

                while(low<high && value<=a[high])

                        high--;

                a[low]=a[high];

                while(low < high && value>=a[low])

                        low++;

                a[high] = a[low];

        }

        a[low]=value;

        return low;

}

        

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux c 快速排序 算法