快速排序

不说什么了,直接代码:

 

#include<stdio.h>
int position(int arr[],int left,int right)
{
    int base = arr[left];
    int i = left,j = right;
    while(i < j)
    {
        while((i < j) && (arr[j] >=base))
            j--;
        arr[i] = arr[j];
        while((i<j)&&(arr[i]<base))
            i++;
        arr[j] = arr[i];
        

    } 
    arr[i] = base;
    return i;
}

void q_sort(int arr[],int left,int right)
{
    int p;
    if(left < right){
        p = position(arr,left,right);
        q_sort(arr,left,p-1);
        q_sort(arr,p+1,right);
    }
}

int main()
{
    int arr[] = {45,3,57,4,5,36,1,55};
    int len = sizeof(arr)/sizeof(int);
    q_sort(arr,0,len-1);
    for(int i = 0;i<len;i++)
        printf("%d ",arr[i]);
    printf("\n");
    return 0;
}

基本排序算法,都该看得懂

posted @ 2019-01-06 19:37  cablink  阅读(101)  评论(0)    收藏  举报