• 几种常见排序的代码和时间比较


    void	my_sort(int n)		//冒泡	耗时15499ms
    {
    	for(int i = 0;i < n;i ++)
    		for(int j = 0;j < n - i - 1;j ++)
    			if(s[j] > s[j + 1])
    				swap(s[j],s[j + 1]);
    }
    

    void	my_sort(int n)		//选择	耗时3580ms
    {
    	for(int i = 0;i < n;i ++)
    	{
    		int	min_index = i;
    		for(int j = i;j < n;j ++)
    			if(s[j] < s[min_index])
    				min_index = j;
    		swap(s[min_index],s[i]);
    	}
    }
    

    void	my_sort(int n)		//插入	耗时2809ms
    {
    	int	i,j;
    	for(i = 1;i < n;i ++)
    	{
    		int	temp = s[i];
    		for(j = i - 1;j >= 0 && s[j] > temp;j --)
    			s[j + 1] = s[j];
    		s[j + 1] = temp;
    	}
    }
    

    void	my_sort(int left,int right)		//归并	耗时171ms
    {
    	if(left >= right)
    		return	;
    
    	int	length = right - left;
    	int	mid = left + (length >> 1);
    	int	start_1 = left,end_1 = mid;
    	int	start_2 = mid + 1,end_2 = right;
    
    	my_sort(start_1,end_1);
    	my_sort(start_2,end_2);
    
    	int	k = left;
    	while(start_1 <= end_1 && start_2 <= end_2)
    		TEMP[k ++] = s[start_1] < s[start_2] ? s[start_1 ++] : s[start_2 ++];
    	while(start_1 <= end_1)
    		TEMP[k ++] = s[start_1 ++];
    	while(start_2 <= end_2)
    		TEMP[k ++] = s[start_2 ++];
    
    	for(k = left;k <= right;k ++)
    		s[k] = TEMP[k];
    }
    

    void	my_sort(int left,int right)		//快排	耗时168ms
    {
    	if(left >= right)
    		return	;
    
    	int	key = s[right];
    	int	small_index = left;
    	for(int i = left;i <= right;i ++)
    		if(s[i] < key)
    		{
    			swap(s[small_index],s[i]);
    			small_index ++;
    		}
    	if(s[small_index] > key)
    		swap(s[right],s[small_index]);
    
    	my_sort(left,small_index - 1);
    	my_sort(small_index + 1,right);
    }
    





  • 相关阅读:
    SFTP的使用
    java操作文件的创建、删除、遍历
    ios UICollectionView滑动时操作
    IOS自带json解析类解析json
    IOS把文件保存进沙盒目录
    python3.4安装suds
    Lua for windows中SciTe开启支持python的方法
    修改tabbarcontroller选中图片及选中颜色
    Android新版本SDK打开旧版本项目报错解决
    PHP5.4连接sqlserver
  • 原文地址:https://www.cnblogs.com/xz816111/p/5348097.html
Copyright © 2020-2023  润新知