1. 程式人生 > >C_數據結構_快速排序

C_數據結構_快速排序

int urn sort return for DPoS 進行 參數表 main

# include <stdio.h>

void QuickSort(int * a, int low, int high);
int FindPos(int * a, int low, int high);

int main(void)
{
    int a[6] = {2, 1, 0, 5, 8, 3};
    int i;

    QuickSort(a, 0, 5); //第二個參數表示第一個元素的下標,第三個參數表示最後一個元素的下標,表示把a[0]-a[5]進行排序

    for (i=0; i<6; ++i)
        printf(
"%d ", a[i]); printf("\n"); return 0; } void QuickSort(int * a, int low, int high) { int pos; if (low < high) { pos = FindPos(a, low, high); QuickSort(a, low, pos-1); QuickSort(a, pos+1, high); } } int FindPos(int * a, int low, int
high) { int val = a[low]; while (low < high) { while (low < high && a[high]>=val) --high; a[low] = a[high]; while (low<high && a[low]<=val) ++low; a[high] = a[low]; } //終止while循環後low和high一定是相等的
a[low] = val; return low; //high可以改為low,但不能改為val,也不能改為a[low]和a[high] }

C_數據結構_快速排序