冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 排序(Sorting) 是计算机程序设计中的一种重要操作,它是将一个序列的数据元素(或记录),按一定顺序重新排列 它重复地走访要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们位置交换过来. 这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同湖底的气泡最终会上浮到顶端一样,故名“冒泡排序”。 算法演示 我们从头到尾完成了第一个过程, 最大的数字被放到了最后的位置。第一个回合结束, 最大的数字无论最初藏在哪里,都会被交换到最后。 现在我们开始第二个回合。。。 算法实现 我们把数字存放在一个数组变量arr中。
这是比较和交换的逻辑: 那么问题来了: 所以我们还需要添加一个外循环: 改进 这是改进后的算法: 答案是 arr.length-i-1. 流程图 想一想, 空白处正确的答案是什么? |
|