數據結構7——排序

排序和查找的關係

  • 排序是查找的前提
  • 排序是重點。
  • 排序:
    • 冒泡
    • 插入
    • 選擇
    • 快速排序
    • 歸併排序

快速排序

// 快速排序
#include<stdio.h>

int FindPos(int * a,int low,int high)void QuickSort(int * a,int low,int high)int main(void){
    int a[6] = {2,1,0,5,4,3};
    int i;
    QuickSort(a,0,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
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章