seabay 发表于 2013-2-1 12:33:40

Quick Sort

/** File:   main.c * Author: lonecat * * Created on 2011年4月3日, 下午4:41 */#include <stdio.h>void swap(int* v1, int* v2){    int tmp = *v1;    *v1 = *v2;    *v2 = tmp;}int partition(int* num, int p, int r ){   // printf("in partition\n");    printf("p=%d, r=%d\n", p, r);    int key = num;    int j = p;    int i = j-1;    while(j < r){      if(num <= key){            i++;            swap(num+j, num+i);            print(num,r+1);      }      j++;    }    swap(num+i+1, num+r);    print(num,r+1);    printf("%d\n ", i+1);    return i+1;}void qsort(int* num, int p, int r){    if((r-p) > 0){       int q = partition(num,p,r);       qsort(num,p,q-1);       qsort(num, q+1,r);         }}/* **/int main(int argc, char** argv) {    int num[] = {5,2,4,6,1,3,7,9,4,8};    print(num,10);    qsort(num, 0, 9);    print(num,10);    return (0);}
页: [1]
查看完整版本: Quick Sort