冒泡排序算法需要遍历几次数组。每次遍历都要比较连续相邻的元素,如果某一对相邻元素是降序,则互换它们的值,否则,保持不变。由于较小的值像“气泡”一样逐渐浮想顶部,而较大的值沉向底部,所以叫冒泡排序。
冒泡排序的图解是:
总结一句话就是:连续比较相邻的元素,降序则呼唤。有n个数,共需要比较n-1趟,第i趟,需要比较n-i次。
BubbleSort.java
public class B...
分类:
编程语言 时间:
2015-12-21 16:21:26
阅读次数:
272
选择排序:
和冒泡排序的比较
选择排序是一种和冒泡排序很相似的排序方法,冒泡排序是通过两两比较,不断调换,逐个推进进行排序的,两两比较,和两两调换都是比较费时的,选择排序可以说是冒泡排序的一种改进.冒泡排序每趟遍历比较的目的是要找出最小值,但是过程中很多交换都是无价值的交换,很浪费时间.所以选择排序的做法是:每次遍历,只选择最值元素进行交换,这样一次遍历,只需进行一次交换即可,从而避免了其它无...
分类:
编程语言 时间:
2015-08-17 15:38:33
阅读次数:
137
冒泡排序说明:此文中的排序算法数组,第一个数(即0下标)没有作为数据处理(i从1开始),arr[0]用作哨岗,部分排序算法(如插入排序)比较时需要用到排序思想:1.假设共有N个数,从头开始,比较相邻的两个数,如果前一个数比后一个数大,则交换位置,否则不变,继续比较。2.按照这样的方法对数组从0到N-...
分类:
编程语言 时间:
2015-08-14 15:10:32
阅读次数:
145
冒泡排序
冒泡排序的效率很低,但是算法实现起来很简单,因此很适合作为研究排序的入门算法。
基本思想
对当前还未排好序的范围内的全部数,自上而下对相邻的俩个数依次进行比较和调整,让较大的数下沉,较小的数往上冒。即:每当俩相邻的数比较后发现他们的排序与排序的要求相反时,就将他们交换。每次遍历都可确定一个最大值放到待排数组的末尾,下次遍历,对该最大值以及它之后的元素不再排序(已经排好)。...
分类:
编程语言 时间:
2015-08-06 00:28:52
阅读次数:
137
冒泡排序是一种交换排序思想,既两两比较待排序记录的关键字(值),发现两个记录的次序(大小)相反时进行交换,直到所有记录都满足排序要求。该算法的平均时间复杂度为O(n2),冒泡排序算法时有几个可以缩短操作的方法:如果一次排序比较过程中没有发生记录位置交换,即可停止..
分类:
编程语言 时间:
2014-10-18 03:07:16
阅读次数:
167