zoukankan      html  css  js  c++  java
  • 写一个quick sort

    #include <stdio.h>
    #include <stdlib.h>
    
    //int a[]={1000,10000,9,10,30,20,50,23,90,100,10};
    int a[]={10,9,8,7,6,5};
    
    int length=sizeof(a)/sizeof(int);
    
    int swap(int start, int stop){
    	int temp;
    	temp=a[start];
    	a[start]=a[stop];
    	a[stop]=temp;
    	return 0;	
    }
    
    int  quicksort(int start, int stop) {
    	
    	int i;	
    
    	int ostart=start;
    	int ostop=stop;
    
    	int k=a[start];
    	int middle;
    	if(start >= stop){
    		return 0;
    	}
    	
    	while( start <= stop ){
    	
    		printf("
     begin start=%d,stop=%d ,k=%d , ostart=%d,ostop=%d
    " , start, stop, k,ostart,ostop);
    		int i;	
    		for(i=0;i<length;i++){
    			printf("%d
    " , a[i]);
    		}
    
    
    
    		while((a[stop] >= k) &&(start<stop)){
    			stop--;
    		}
    
    		while( (a[start] < k)  &&(start<stop)){
    			start++;
    		}
    		
    		if(start >= stop){
    			break;
    		}
    
    		printf("after move start=%d,stop=%d ,k=%d , ostart=%d,ostop=%d
    " , start, stop, k,ostart,ostop);
    	    if( start < stop ){
    			swap(start,stop);
    		}
    		printf("may after swap start=%d,stop=%d ,k=%d , ostart=%d,ostop=%d
    " , start, stop, k,ostart,ostop);
    	
    	}
    	quicksort(ostart, start);
    	quicksort(stop+1, ostop);
    	
    }
    
    int main(){
    	
    	printf("length= %d
    ",length);	
    	int i;
    	printf("
    ");
    	quicksort(0,length-1);
    	printf("
    
    
    ");
    	for(i=0;i<length;i++){
    		printf("%d
    " , a[i]);
    	}
    	printf("
    ");
    	
    	return 0;
    }		
    

      虽然这种算法烂大街,但是实现一个简洁、正确的算法还是不容易的。

    MySQL限时解答,24小时内友哥专业解答
    http://www.yougemysqldba.com
    如有进一步需要请联系微信onesoft007
    微博账号@友哥一指
  • 相关阅读:
    内存缓存 原理 实现
    ssh 内在溢出
    android 解析XML方式(三)
    android 解析XML方式(二)
    android 解析XML方式(一)
    (三)、
    (二)、SSL证书
    (一)、http原理
    httpsClient实例
    飞信免费发送接口API的测试 httpClient
  • 原文地址:https://www.cnblogs.com/youge-OneSQL/p/6295890.html
Copyright © 2011-2022 走看看