排序-冒泡排序

冒泡排序

基本知识

基本思想

  • 比较相邻的元素。如果第一个比第二个大,就交换他们两个
  • 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数
  • 针对所有的元素重复以上的步骤,除了最后一个
  • 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较

改进

  • 在全部数据中,一旦前面有一个数比后面的大,就一定会发生交换,把大的数换到后面去。 所以我们可以加一个标记,如果某一趟排序没任何交换,则说明整组数据已经全部有序了,此时就可以中断循环,不用再比较
  • 第一次循环会把最大的值交换到最后一个位置,第二次循环会把次大的值交换到倒数第二位,以此类推。随着循环的进行,靠后的部分都变为有序的区域,那么,靠后部分我们不必在进行比较
  • 每次对整个数据循环我们都只找出了最大值,并且放到了最后的位置,如果我们每次循环既寻找最大值又最小值,并把最大值放到最后,最小值放到最前的位置,就可以进一步优化了

原文地址:https://www.cnblogs.com/yanghanwen/p/12107411.html