范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

冒泡排序算法小优化

  冒泡排序算法是个入门的排序算法,可能是很多人接触过的第一个排序算法,算法本身很简单,主要步骤如下:1、从前到后遍历数组,依次比较当前元素和 下一个元素。如果当前元素大于下一个元素, 则对调当前元素和下一个元素;如果当前元素 不大于下一个元素,什么也不用做,继续遍历 下一个元素。这样经过一轮遍历后,最大的元 素就排到了数组的尾部,找到了最大的元素。 2、重复第一步,依次找到第二大、第三大等 元素等等,并放到适当的位置。
  算法的动图(网上找的)演示如下:
  冒泡排序动图演示
  常规排序代码如下:    int arr[] = {2, 4, 0, 5, 7, 1, 3, 8, 9};     int len = sizeof(arr) / sizeof(arr[0]);     int max = len;      while (max > 0) {         for (int i = 0; i < max - 1; i++) {             if (arr[i] > arr[i + 1]) {                 int temp = arr[i];                 arr[i] = arr[i + 1];                 arr[i + 1] = temp;             }         }          max--;     }
  接下来说下可以优化的点,如果这个数组的前部分本身就是有序的,只是后面一部分元素是乱序的,其实本必要做完所有轮次的排序,可以提早结束遍历,提高程序性能。提高结束遍历的条件是:如果某轮排序结束后,在本轮排序中,没有需要 发生元素顺序的调换,那么就可以认为当前的数 组中,所有元素都是有序的了,可以退出遍历。
  优化后的代码为:    int arr[] = {2, 4, 0, 5, 7, 1, 3, 8, 9};     int len = sizeof(arr) / sizeof(arr[0]);     int max = len;      while (max > 0) {         int replace = 0;          for (int i = 0; i < max - 1; i++) {             if (arr[i] > arr[i + 1]) {                 int temp = arr[i];                 arr[i] = arr[i + 1];                 arr[i + 1] = temp;                 replace++;             }         }          if (replace == 0) {             break;         }          max--;     }
  以程序的测试数据为例,优化前,循环次数为36次,优化后,循环次数减少到30次,减少6次,减少16.67%的循环次数。如果数组乱序程度不是很大的情况下,减少的幅度应该是比较可观的。
  优化前冒泡排序过程
  优化后冒泡排序过程

魏晋名士之风流魏晋名士的风骨,自魏晋以降历朝文人士大夫皆羡慕不已,从而在自己的言行上极力效仿,但终归只是皮毛,不可从骨子里企及,盖环境使然。随时代变迁,产生魏晋名士之历史环境一去不复返,后世已很朱元璋抬来3筐稻谷让考生评优劣,刘伯温脸色骤变有人要死了引言都说朱元璋是乞丐皇帝,古代乞讨为生的人自然是文化水平不高。为什么没文化的他却能当皇帝,而今社会的大学生,研究生毕业却找不到工作。难道真的是时代不同了?朱元璋时期人才凋零,半文盲2023年农民参保标准调整,一次性补缴3。6万,每月能领1000元吗?随着养老保险工作的不断推进和完善,几乎是人人都体会到了老了以后能领取一份养老金是多么幸福。因此,不管是城镇职工还是城乡居民,都开始积极缴纳养老保险了。由于面向的参保群体主要是农民和陕西人春节自驾北海涠洲岛自由行一点体会,不谈攻略!源起海南放松游,结果12月初就发现全国各地都去海南放松了,果断放弃,忍不了那种簇拥感。旁边看来看去,北海不错,早年间听说这个地方源起传销。感觉能把这玩意做成产业的地方肯定有独特的魅武状元因太丑惨遭除名,他一怒之下,推翻289年王朝自己当皇帝俗语说得好,君为舟,民为水,水能载舟亦能覆舟,历代的统治者大多数都深谙此道,但凡事都有例外,总有一些昏庸无道的皇帝喜欢挑战百姓下限,做事全凭自己喜好,将百姓的渴求视而不见,最终把整暴力皇帝提比略,死因不明,民众仍想将其尸体烤熟文桑代克的猹编辑桑代克的猹朱里亚克劳狄王朝皇帝的殡葬植根于罗马传统文化,离不开罗马人在社会发展中逐渐形成的死亡观念习俗和法律。因此皇帝殡葬是一定社会状态下,罗马人宗教信仰伦理观念的末代皇帝溥仪为何绝后把地球的故事讲给宇宙这是末代皇帝溥仪登基时的真实影像。他一生有五个妻妾,却始终没有一儿半女内中缘由令人难以启齿。其实溥仪并不是皇家直系血统,他是慈禧太后养女的儿子也就是太后的干外孙狸猫换太子的太子继位后,为什么儒家能给他皇帝最高的评价?宋仁宗这样一位恭敬谦卑的皇帝,最终却没有留下子嗣来继承皇位,以至于年老的时候,每到宋真宗忌日,他都会对着父亲的牌位大声痛哭,这哭声中藏着多少不甘与无奈。纵观宋仁宗的一生,在公祭的背乾隆死后,嘉庆皇帝是怎么对待他的妃子们!一封建帝制,皇权至上,君主独裁,男尊女卑。相比较现在女性的高地位,古代普通家庭的女性那是惨得不要不要的,她们几乎没机会读书,她们更没有可打拼的事业,她们要专攻女红,相夫教子便是她们醇亲王府出了俩皇帝一个摄政王,堪称王府之最,一年要花多少钱民国十七年,北京,醇亲王府。东西都收拾好了吗?端坐在一张颇有年岁的摇椅上的载沣向管家慢悠悠地说道。爷,您交代的东西都带上了,咱们随时都能走。管家恭敬地回答道。知道了,让家里其他人都最后一攻没要球!奥斯曼我知道29分平生涯最高但没必要再刷2分直播吧1月30日讯今天,骑士12299战胜了快船。奥斯曼投篮13中11,三分7中7(生涯新高),砍下平生涯最高的29分,另有2篮板2助攻2抢断1盖帽。在赛后接受采访时,奥斯曼在谈到
机身配色时尚的三星GalaxyZFlip4,时刻表达自己的个性这是一款精致小巧的手机,若是在合上后,你不仔细看,会以为这是一个化妆盒。但是展开后,你会发现,它能给你带来很多惊喜,这就是三星最新上市的三星GalaxyZFlip4。关于它都有哪些八月十五中秋节,5种吉祥果摆上桌,福来家也旺,我也是才知道人不管走到哪一步,总得找点乐子,想一点办法。是的,美食就是我找的乐子,想的办法!小谈食刻和你一起认真对待吃下的食物!导读农历的八月十五,将会迎来中秋节。提及中秋节大家想到的是什么?张锡纯名方理痰汤,祛除痰湿,消散结节,疗效好著名医学家朱丹溪老师有言百病之中多兼有痰湿。意思是,大部分病都多多少少和痰湿有关。意思是体内水湿过多,无法运化,湿聚成痰,就是痰湿。痰湿有哪些症状呢?可以根据以下几点判断自己是否有哈登大交易崛起!8换1偷梁换柱,四少豪阵很美妙,感谢篮网詹姆斯我们可以看看近10年总冠军归属情况,哪一支球队不是超巨组成的球队。可能有球迷会说,猛龙当年是伦纳德单核带队,今年库里也是单核带队,这么就巨头林立了呢?我们需要明白的一点就是,所谓的NBA一夜6大交易动态哈雷尔加盟76人布朗和管理层的矛盾彻底爆发一安东尼和凯尔特人达成加盟协议今天名记chrt透露球队当前已经和自由球员安东尼进行了会面,双方交谈非常愉快,安东尼加盟凯尔特人已经是板上钉钉了,上个赛季凯尔特人展现出了非常强的韧性中国队豪夺4冠,世界冠军陈幸同42夺冠北京时间9月6日消息,WTT支线系列赛帕纳久里什泰站圆满落幕,中国队勇夺男女单打冠军男子双打冠军混合双打冠军等四项冠军。周启豪陈幸同打得男女单打冠军,曹巍徐海东打得男子双打冠军。本想要手机用上三五年不换,建议一步到位,目前这三款手机可以满足虽说现如今每隔一段时间市场上都会有不少新机型发布,但是并不是所有机型都值得购买,若想手机用上三五年不换,手机的各方面配置就不能太差,建议一步到位入手这三款机型,轻松用上三五年没问题华为新款二合一笔记本即将发布,新形态推动笔记本电脑市场发展近两年来,随着科技的不断创新和学习办公场景向着移动化居家化方向转变,不少数码产品之间的界限也开始变得模糊,尤其是综合多种用途的产品逐渐代替传统单属性的产品,成为大众愿意买单的新宠,军营变炼蛊之地及大毒窟!台媒台新兵训练营爆335人确诊中国台湾网7月4日讯台军营惊传多人确诊!综合台媒报道,台军替代役第234梯次基础训练班今(4日)原本要在台军新兵训练中心成功岭结训,然而却在3日传出有335人确诊,占此次受训人数的轻武器知识之二(军用刀具)一。军用刀具概述军用刀具是为军人制造的一种刀具,主要目的当然是用于近距离搏击,以杀伤敌方人员,亦可用于行军和越野。其历史最早可以追溯到公元前2500年,土耳其(安纳托利亚)北部赫梯18年,小区高空抛物无人承认,砸瘫3月大女婴,肇事者让人想不到文古叔编辑古叔2018年3月9日,一位姥姥正抱着3个月大的外孙女散步,也不知从哪里,突然落下了一个苹果,不偏不倚地砸向婴儿的头部。婴儿当即被送进了重症监护室,因此经历了2次开颅手术