快速排序(quick sort)

样例:A[8]={2,8,7,1,3,5,6,4}

关键是数组划分部分。

比较简单,所以直接给出C语言代码:

#include<stdio.h>
#include <stdlib.h>
int a[101], n;
void quick_sort(int left, int right);
int main()
{
    int i;
    scanf_s("%d", &n);
    for (i = 1; i <= n; i++)
        scanf_s("%d", &a[i]);
    quick_sort(1, n);
    for (i = 1; i <= n; i++)
        printf("%d ", a[i]);
    printf("hello..");
    system("pause");
    return 0;
}
void quick_sort(int left, int right)
{
    int i, j, t, temp;
    if (left>right)
        return;
    temp = a[left];
    i = left;
    j = right;
    while (i != j)
    {
        while (a[j] >= temp&&i<j)
            j--;
        while (a[i] <= temp&&i<j)
            i++;
        if (i<j)
        {
            t = a[i];
            a[i] = a[j];
            a[j] = t;
        }
    }
    a[left] = a[i];
    a[i] = temp;
    quick_sort(left, i - 1);
    quick_sort(i + 1, right);
}

 

posted @ 2018-03-16 09:14  Alexadar  阅读(124)  评论(0)    收藏  举报