QucikSort
来源:互联网 发布:网络教育文凭 编辑:程序博客网 时间:2024/06/05 20:57
// qsort.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <stdio.h>void print(int data[],int n){ int i=0; for(;i<n;i++) printf("%d ",data[i]); printf("\n");}int Partition(int data[],int start,int end){ int pivot;//存储基准的变量 int i,j; i=start; j=end; pivot=data[i]; while(i<j){ while(i<j&&data[j]>=pivot)//从右往左扫描 --j; data[i]=data[j]; while(i<j&&data[i]<=pivot)//从左往右扫描 ++i; data[j]=data[i]; print(data,8); } data[i]=pivot; print(data,8); return i;}void QuickSort(int data[],int low,int heigh){ int pivot_pos; if(low<heigh){ pivot_pos=Partition(data,low,heigh); QuickSort(data,low,pivot_pos-1); QuickSort(data,pivot_pos+1,heigh); }}int main(int argc, char* argv[]){ int data[]={1,3,4,6,7,5,0,9}; QuickSort(data,0,7); print(data,8); return 0;}
/*
0 3 4 6 7 5 3 9
0 3 4 6 7 5 3 9
0 1 4 6 7 5 3 9
0 1 3 6 7 5 6 9
0 1 3 6 7 5 6 9
0 1 3 4 7 5 6 9
0 1 3 4 6 5 6 9
0 1 3 4 6 5 7 9
0 1 3 4 5 5 7 9
0 1 3 4 5 6 7 9
0 1 3 4 5 6 7 9
*/
0 0