zoukankan      html  css  js  c++  java
  • 冒泡排序

    设数组长度为n,按照从小到大排序

    1:从第一个数开始,比较相邻的前后两个数字,如果前面数据大于后面数据,交换两个数据;否则继续比较

    2:当从data[0]遍历到data[n-1]后,最大的数字沉在data[n-1]的位置,即数组末尾;

    3:n=n-1,重复上面两步,直到n=0。

    void BubbleSort1(int data[],int length)
    {
    	for(int i = 0; i < length; i++)
    	{
    		for(int j = 1; j < length-i; j++)
    		{
    			if(data[j-1] > data[j])
    			{
    				Swap(data[j-1],data[j]);
    			}
    		}
    	
    	}
    }
    

    优化1:设置flag,如果某次没有交换发生,说明排序已经完成;如果交换,设置flag=true

    用k表示也要比较的次数,每次经过一次排序,最大的n沉到最后,k--,那么下一次只要比较n之前的数组,n之后的已经有序

    优化2:有10个数的数组,如果经过几次排序,后边的6个数字已经有序,那么下次排序,只要从第一个开始到第四个就OK,不需要继续比较后边的6个

     

  • 相关阅读:
    Yii2的View中JS代码添加
    Yii2命名规则
    Yii2 Redis的使用
    win7下php5.6安装redis扩展
    Ubuntu安装cuda
    Ubuntu 安装显卡驱动
    TensorFlow 图片resize方法
    anaconda的kernel对jupyter可见
    cuda和显卡驱动版本
    jupyter修改根目录
  • 原文地址:https://www.cnblogs.com/newcoder/p/5582788.html
Copyright © 2011-2022 走看看