快速排序算法(C语言)

#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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容