// 最简单冒泡//int[] arr = { 6, 5, 1, 3, 9, 8, 7, 4, 2, 10 };  //n   int[] arr = {1, 3, 4, 7, 8, 9, 10, 101 };  //n   for (int i = 0; i < arr.Length - 1; i++) //n
            {for (int j = 0; j < arr.Length - 1 - i; j++)  //n*n    // 最后 去常 取最大
                {if (arr[j] > arr[j + 1])          //n*n
                    {int temp = arr[j];           arr[j] = arr[j + 1];         arr[j + 1] = temp;           }}}foreach (var item in arr){Console.WriteLine(item);}Console.WriteLine("--------------");Console.WriteLine("--------------"); Console.WriteLine("--------------");// 时间复杂度 n平方

//int[] arr = { 6, 5, 1, 3, 9, 8, 7, 4, 2, 10 };  //n
int[] arrs = { 1, 2, 3, 4, 5, 6, 7 };// 优化bool flag;int outs = arrs.Length - 1;do{flag = false;//for (int i = 0; i < arr.Length - 1; i++)//{for (int j = 0; j < outs; j++){if (arrs[j] > arrs[j + 1]){int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;flag = true;}}//}} while (flag && --outs >= 1);// 先减foreach (var item in arrs){Console.WriteLine(item);}//1 2 3 4 5//1 3 5 2 7

冒泡排序时间复杂度为O(n^2)

第一种

如果事先是排序好的,也会全部在遍历一遍,虽然数据不会做交换

第二种

如果事先是排序好的,通过做个判断,只会遍历一遍

第二种相较之,效率更优

记一笔冒泡排序和对它的优化相关推荐

  1. 设计进步,记一笔,控制层的代码,他不光控制还要校验数据!以前理解错啦

    再记录: 因为使用泛型对公共代码大量抽取,用到了继承关系,则需将原来的在业务层的部分数据放到controller层校验 使他符合mvc的请求过程,即是一个完整处理的先后顺序问题 ,对业务处理的时就必须 ...

  2. php记一笔在线记账管理系统源码

    简介: php记一笔在线记账管理系统源码,图形化界面操作更简单,非常适合家庭理财.记账,系统界面简洁优美,操作直观简单,非常容易上手. 源码安装教程: 1.上传到网站根目录 2.用phpMyadmin ...

  3. 5秒到1秒,记一次效果“非常”显著的性能优化

    性能优化,有时候看起来是一个比较虚的技术需求.除非代码慢的已经让人无法忍受,否则,很少有公司会有觉悟投入资源去做这些工作.即使你有了性能指标数据,也很难说服领导做一个由耗时300ms降低到150ms的 ...

  4. 记一次百万数据量查询sql 优化

    记一次百万数据量查询sql 优化 问题描述 问题分析过程 总结 简单了解用到的pgsql 的索引结构 pgsql 的with 扩展 对于更大数据量的数据还有没有其他更好的方案 问题描述 数据库用的是p ...

  5. 冒泡排序的基本实现及优化

    冒泡排序的基本实现及优化 一.前言 二.基本概念 1.算法特征 2.算法逻辑 3.算法复杂度 3.1.时间复杂度 3.2.空间复杂度 三.代码实现 1.一般实现 2.算法优化 2.1.提前结束算法 2 ...

  6. 记webpack3.x版本远古老项目编译优化实战

    记webpack3.x版本远古老项目编译优化实战 本文内容只针对开发环境优化 生产环境可作参考 为何要优化? 每次执行npm run dev 需要等待24~28s,每次ctrl + s触发热更新需要等 ...

  7. 给定一个数值,输出符合中国人习惯的读法--记一道笔试题

    题目:给定一个数字,最大小于一万亿,输出符合中国人习惯的读法,例如: a.12输出:十二 b.102输出:一百零二 c.1002输出:一千零二 d.112输出:一百十二 e.10112输出:一万零一百 ...

  8. android 理财助手 app 记一笔,这一款个人理财助手 APP,可以让你变成好会计

    原标题:这一款个人理财助手 APP,可以让你变成好会计 今天分享给大家的是一个用来记账的 APP,在发现这个 APP 之前我习惯于直接打开支付宝看一笔笔花销,但自从发现了 Mobills 个人理财助手 ...

  9. 记一笔(mybatis) Could not find a parent resultmap with id xx

    springboot运行项目无问题,但junit跑测试提示以下问题 文中 com.springcloud.mxl.sys.base.mapper.BaseMapper.StdResultMap为 xm ...

最新文章

  1. jQuery 表格插件汇总
  2. CF429D Tricky Function(求解公式、经分析转为求平面最近点对、思维)
  3. nanomsg:ZeroMQ作者用C语言新写的消息队列库
  4. 区块链开发指南_区块链钱包开发
  5. 创建Servlet项目(IDEA版)
  6. Mina、Netty、Twisted一起学(五):整合protobuf
  7. JS报错:Cannot read property 'type' of undefined
  8. Visual C# 打造 “浏览器”
  9. 自治系统间的路由协议--BGP详细介绍
  10. Linux学习之安装jdk
  11. 多年收集的一些稀有软件3
  12. Maya2020入门:标题栏+菜单栏+状态栏
  13. 台大林轩田《机器学习基石》:作业三python实现
  14. (转)Hinton、LeCun和Bengio——深度学习综述
  15. Vue实现状态的不同颜色
  16. linux tar.7z如何解压,(转)Linux下解压:tar、rar、7z命令
  17. 计算机桌面不同步,怎样使电脑桌面文件在不同桌面位置上显示
  18. html正方形边框,详解HTML设置边框的三种方式
  19. bzoj1758 [Wc2010]重建计划
  20. 以太坊柏林升级前的紧急刹车

热门文章

  1. python分布式日志收集系统_Go实现海量日志收集系统(一)
  2. linux usr g 空间不足,centos 磁盘空间不足
  3. php 获取xlsx,PHPExcel获取.xlsx文件内容
  4. flex java 全局拦截_flex + java 过滤敏感词
  5. response.setcharacterencoding 报错是缺哪个包_出街,你缺的是这一款包包...
  6. php编程输出心形图案_利用php输出不同的心形图案,php心形图案_PHP教程
  7. mysql服务实例配置_MySQL多实例配置
  8. catia 如何提取cgr面_CATIA教程之创成式外形设计金元宝
  9. hwclock设置日期_linux中时间设置date、hwclock、clock
  10. 华为FusionCompute添加NAS存储