zoukankan      html  css  js  c++  java
  • 高速排序实现

    高速排序是最快的通用内部排序算法,比归并排序(nlogn)速度更快,尽管复杂度都是nlogn。并且归并排序须要n的辅助空间,高速排序不须要。

    。高速排序的实现也是分治。

    。就是前面一个指针,后面一个指针。。

    手敲快排:

    void qsort(int s[],int left,int right)
    {
    	if(left < right)
    	{
    		//swap(s[left],s[(left+right)/2]); 
    		int i = left,j = right,x = s[left];
    		while(i<j)
    		{
    			while(i<j && s[j] >= x)
    				j--;
    			if(i<j)
    				s[i++] = s[j];
    			while(i<j && s[i] <= x)
    				i++;
    			if(i<j)
    				s[j--] = s[i];
    			
    		}
    		s[i] = x;
    		qsort(s,left,i-1);
    		qsort(s,i+1,right);
    	}
    	return ;
    }


    那个交换加上无非就是中间參照物的问题。改变的是快排的实际复杂度。

    。。

    
    

  • 相关阅读:
    文件隐藏在一张图片里
    晶振
    主宰全球的10大算法
    java+mysql连接的优化
    排序剔除
    js数据类型
    字符实体
    表单
    定义样式表
    布局相关的属性
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/6984216.html
Copyright © 2011-2022 走看看