快速排序

来源:互联网 发布:href javascript 0 编辑:程序博客网 时间:2024/06/04 18:33
//库函数调用快速排序:--------------------------------------------------------------------------------#include<stdio.h>#include<stdlib.h>int sort(const void *a, const void *b){    return *(int *)a - *(int *)b;}int main(){    int i;    int arr[6] = {1, 3, 5, 2, 4, 6};    qsort(arr, 6, sizeof(int),sort);    for (i = 0; i < 6; i++)        printf("%d ",arr[i]);    return 0;}--------------------------------------------------------------------------------//快速排序#include<stdio.h>void quick_sort(int s[], int l, int r){    if (l < r)    {        int i = l, j = r, x = s[l];     //x为基数        while (i < j)        {            while(i < j && s[j] >= x) // 从右向左找第一个小于x的数                j--;            if(i < j)                s[i++] = s[j];            while(i < j && s[i] < x) // 从左向右找第一个大于等于x的数                i++;            if(i < j)                s[j--] = s[i];        }        s[i] = x;        quick_sort(s, l, i - 1); // 递归调用  分治思想   左边分治        quick_sort(s, i + 1, r);    //右边分治    }}int main(){    int a[10] = {72, 6, 57, 88, 60, 42, 83, 73, 48, 85};    int i = 0, j = 9;    quick_sort(a, i, j);    for (i = 0; i < 10; i++)        printf("%d ",a[i]);    return 0;}
原创粉丝点击