• 高速分拣


    #include<iostream>
    #include<iterator>
    #include<vector>
    #include<algorithm>
    #include<time.h>
    using namespace std;
    
    /*
    *高速排序问题
    */
    void Fast_sort(vector<int>& a,int beg,int end)
    {
    	if(beg+1>=end) return;
    	int key = beg;
    	for (int i = beg , j = end; i < j; )
    	{
    		if(key == i)
    		{
    			do
    			{
    				j--;
    			} while (a[j]>a[key]);
    			key = j;
    		}else
    		{
    			do
    			{
    				i++;
    			} while (a[i]<a[key]);
    			key = i;
    		}
    		swap(a[i],a[j]);
    	}
    	Fast_sort(a,beg,key);
    	Fast_sort(a,key+1,end);
    }
    
    int main()
    {
    	long start, end;
    	vector<int> vec;
    	copy(istream_iterator<int>(cin),istream_iterator<int>(),back_inserter(vec));
    	start = clock();
    	Fast_sort(vec,0,vec.size());
    	end = clock();
    	copy(vec.begin(),vec.end(),ostream_iterator<int>(cout," "));
    	cout<<endl;
    	cout <<"程序执行时间(单位:毫秒): "<< end-start <<endl;
    }

    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    snmp
    iOS 精确定时器
    iOS 用命令实现简单的打包过程
    OpenSSH
    IOS 逆向工程之砸壳
    UNIX相关知识
    BSD历史
    linux grep命令
    为什么国外程序员爱用Mac?
    iOS xcuserdata
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4813717.html
Copyright © 2020-2023  润新知