快速排序算法(C语言)

2019-02-15  本文已影响0人  奋斗live
#include<stdio.h>

int arr[] = {1,10,2,6,15,25,3,5};

void sort(int left,int right){
    int i,j,temp,k;
    if(left>right){
        return;
    }
    temp = arr[left];
    i = left;
    j = right;
    while(i!=j){
        while(arr[j]>=temp && i<j){
            j--;
        }
        while(arr[i]<=temp && i<j){
            i++;
        }
        if(i!=j){
             k = arr[i];
                    arr[i] = arr[j];
                    arr[j] = k;
        }
    }
    arr[left] = arr[i];
    arr[i] = temp;
    sort(left,i-1);
    sort(i+1,right);
    
}

int main(){
    printf("--快速排序--\n");
    printf("排序前:\n");
    int i;
    for(i=0;i<8;i++){
        printf("%d ",arr[i]);
    }
    printf("\n");
    printf("排序后:\n");
    sort(0,7);
    for(i=0;i<8;i++){
        printf("%d ",arr[i]);
    }
    return 0;
}

结果如下图显示


image.png
上一篇 下一篇

猜你喜欢

热点阅读