c_cpp 快速排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 快速排序相关的知识,希望对你有一定的参考价值。

#include<stdio.h>
//swapping two numbers
void swap(int* a, int* b){
    int temp = *a;
    *a = *b;
    *b = temp;
}

int partition(int* a, int s, int e){
    int i,j=s-1;
    int pivot = a[e];
    for(i=s; i<e; i++){
        if(a[i] <= pivot){
            j++;
            swap(&a[i],&a[j]);
        }
    }
    swap(&a[j+1],&a[e]);
    return j+1;
}

void quicksort(int* a, int s, int e){
    if(s >= e) return;
    int pi = partition(a,s,e);
    quicksort(a,s,pi-1);
    quicksort(a,pi+1,e);
}

int main(){
    int n;
    printf("Enter size of array\n");
    scanf("%d",&n);
    int a[n],i;
    printf("Enter elements of array\n");
    for(i=0; i<n; i++)
        scanf("%d",a+i);
    quicksort(a,0,n-1);
    printf("Sorted array:\n");
    for(i=0; i<n; i++)
        printf("%d ",a[i]);
    return 0;
}

以上是关于c_cpp 快速排序的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 快速排序

c_cpp 快速排序

c_cpp 快速排序

c_cpp 快速排序

c_cpp 快速排序的.cpp

c_cpp 【分治法】快速排序【2.8】