冒泡排序
2015-10-23 18:23
501 查看
如:有7个数
70 60 50
40 30
20 10
现需用冒泡排序将其从小到大排列
具体思想步骤:
先用第1个数跟第2个数比较,发现70比60要大,所以70跟60交换位置,即现在位 顺序为:60 70 50 40 30 20 10
再然后用第2个数跟第3个数进行比较,因为此时第2个数已经变为 了70,所以是70与第3个数比较,发现70又比50要大,于是将第2个数与第3个数交换位置,即现在顺序为:60 50 70 40 30 20 10,再然后用第3个数与第4个数进行比较,即70与40比较,发现70 比40大,所以交换位置,此时顺序为:60 50 40 70 30 20 10,然后再用第4个数与第5个数进行比 较,以此类推......
经过以上推测发现,我们一共需要6轮才能完整排好序,轮数如下:
第1轮:60504030201070 第1轮比较了6次
第2轮:50403020106070 第2轮比较了5次
第3轮:40302010506070 第3轮比较了4次
第4轮:30201040506070 第4轮比较了3次
第5轮:20103040506070 第5轮比较了2次
第6轮:10203040506070 第6轮比较了1次
此时经过6轮能完整地把一堆数字从小到大按顺序排列。
经过观察我们可以发现:
我们一共有7个数字,经过6轮可以完整排序好,那么代表有n个数字,我们就需要经过n-1轮
那么每轮比较多少次呢?
我们可以发现,每轮比较的次数为 总数 - 轮数 (论数是从1开始数)
因此得到循环
for(int轮数= 0; i <总数- 1 ;轮数++){
//因此轮数在循环中是从0开始的,所以这里还需要-1
for(int次数= 0; 次数< 总数-论述 - 1;次数++){
if( 数组[次数] > 数组[次数+1] ){
//交换两个变量的值
int temp=数组[次数];
数组[次数] = 数组[次数 + 1];
数组[次数 + 1] = temp;
}
}
}
所以,上面的7个数字反映成代码为:
70 60 50
40 30
20 10
现需用冒泡排序将其从小到大排列
具体思想步骤:
先用第1个数跟第2个数比较,发现70比60要大,所以70跟60交换位置,即现在位 顺序为:60 70 50 40 30 20 10
再然后用第2个数跟第3个数进行比较,因为此时第2个数已经变为 了70,所以是70与第3个数比较,发现70又比50要大,于是将第2个数与第3个数交换位置,即现在顺序为:60 50 70 40 30 20 10,再然后用第3个数与第4个数进行比较,即70与40比较,发现70 比40大,所以交换位置,此时顺序为:60 50 40 70 30 20 10,然后再用第4个数与第5个数进行比 较,以此类推......
经过以上推测发现,我们一共需要6轮才能完整排好序,轮数如下:
第1轮:60504030201070 第1轮比较了6次
第2轮:50403020106070 第2轮比较了5次
第3轮:40302010506070 第3轮比较了4次
第4轮:30201040506070 第4轮比较了3次
第5轮:20103040506070 第5轮比较了2次
第6轮:10203040506070 第6轮比较了1次
此时经过6轮能完整地把一堆数字从小到大按顺序排列。
经过观察我们可以发现:
我们一共有7个数字,经过6轮可以完整排序好,那么代表有n个数字,我们就需要经过n-1轮
那么每轮比较多少次呢?
我们可以发现,每轮比较的次数为 总数 - 轮数 (论数是从1开始数)
因此得到循环
for(int轮数= 0; i <总数- 1 ;轮数++){
//因此轮数在循环中是从0开始的,所以这里还需要-1
for(int次数= 0; 次数< 总数-论述 - 1;次数++){
if( 数组[次数] > 数组[次数+1] ){
//交换两个变量的值
int temp=数组[次数];
数组[次数] = 数组[次数 + 1];
数组[次数 + 1] = temp;
}
}
}
所以,上面的7个数字反映成代码为:
相关文章推荐
- 冒泡排序
- C#冒泡法排序算法实例分析
- Java数据结构及算法实例:冒泡排序 Bubble Sort
- c++冒泡排序示例分享
- Java中的数组排序方式(快速排序、冒泡排序、选择排序)
- python冒泡排序算法的实现代码
- c语言实现冒泡排序、希尔排序等多种算法示例
- c#冒泡排序示例分享
- 浅谈php冒泡排序
- Javascript冒泡排序算法详解
- C++冒泡排序算法实例
- C语言的冒泡排序和快速排序算法使用实例
- C语言实现冒泡排序算法
- c语言冒泡排序法代码
- 排序算法之PHP版快速排序、冒泡排序
- php排序算法(冒泡排序,快速排序)
- PHP 冒泡排序算法的实现代码
- 冒泡排序算法原理及JAVA实现代码
- Java实现八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序等
- java实现冒泡排序算法