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
原创粉丝点击