算法:选择和冒泡排序法
2012-02-08 21:22
274 查看
将随机产生的10个10-100之间的整数由大到小排序。
首先我们必须明白两个数如何比较大小并交换位置,举个例子来说,现有一个标着白糖水的水杯1盛满了红糖水,还有一个标着红糖水的水杯2盛满了白糖水,我们想要把两杯水对调,此时需要借用一个空杯子3,先把水杯1中的水倒入3中,然后把2中的水倒入1中,再把3中的水倒入2中,完成!这样就把两杯水对调了。同理,两个数也是一样,我们需要借助一个“空容器”,用代码描述这个过程就是
t=a:a=b:b=t
好了,我们继续进行排序,需要使用循环结构,选择和冒泡排序法都是分成1--9轮,即
For i = 1 to 9
Next i
不同的是,选择排序的每轮都是由该轮的第一个数分别和以后的数比较,总是拿出较大的数放到第一个位置上,继续比较,循环结束后按照每轮得到的数排列起来就是所得结果。即内层循环为
For j= i + 1 to 10
If a(i) < a(j) then
t = a(i)
a(i) =a(j)
a(j)=t
End if
Next j
冒泡排序则是每轮里相邻的两个数进行比较,拿出较小的再和下一个相邻的比较,每轮产生一个最小的数放在该轮后,内部循环为
For j = 1 to 10 - i
If a(j)<a(j+1)
then
t=a(j)
a(j) = a(j+1)
a(j+1)=t
End if
Next j
每一步都产生一个最大的数然后放到每轮的第一个位置,这样有目标的按照预期顺序选择就是选择排序;每一步都产生一个最小的数然后放到每轮的最后一个位置,这样没有目标的排除小数再比较,最后得到一排按照由大到小排列的数也得到结果的选择就是冒泡排序。现在看来,其实两种排序有着异曲同工之妙!
首先我们必须明白两个数如何比较大小并交换位置,举个例子来说,现有一个标着白糖水的水杯1盛满了红糖水,还有一个标着红糖水的水杯2盛满了白糖水,我们想要把两杯水对调,此时需要借用一个空杯子3,先把水杯1中的水倒入3中,然后把2中的水倒入1中,再把3中的水倒入2中,完成!这样就把两杯水对调了。同理,两个数也是一样,我们需要借助一个“空容器”,用代码描述这个过程就是
t=a:a=b:b=t
好了,我们继续进行排序,需要使用循环结构,选择和冒泡排序法都是分成1--9轮,即
For i = 1 to 9
Next i
不同的是,选择排序的每轮都是由该轮的第一个数分别和以后的数比较,总是拿出较大的数放到第一个位置上,继续比较,循环结束后按照每轮得到的数排列起来就是所得结果。即内层循环为
For j= i + 1 to 10
If a(i) < a(j) then
t = a(i)
a(i) =a(j)
a(j)=t
End if
Next j
冒泡排序则是每轮里相邻的两个数进行比较,拿出较小的再和下一个相邻的比较,每轮产生一个最小的数放在该轮后,内部循环为
For j = 1 to 10 - i
If a(j)<a(j+1)
then
t=a(j)
a(j) = a(j+1)
a(j+1)=t
End if
Next j
每一步都产生一个最大的数然后放到每轮的第一个位置,这样有目标的按照预期顺序选择就是选择排序;每一步都产生一个最小的数然后放到每轮的最后一个位置,这样没有目标的排除小数再比较,最后得到一排按照由大到小排列的数也得到结果的选择就是冒泡排序。现在看来,其实两种排序有着异曲同工之妙!
相关文章推荐
- 算法笔记_031:计算中值和选择问题(Java)
- 泛型的冒泡,插入,选择,希尔算法
- 如何选择机器学习的算法及适应解决的问题
- 算法之【冒泡排序法】
- [转]最大概率选择到“最好女孩”的算法
- 经典算法:二分查找、插入排序、选择排序、冒泡排序
- [算法]选择排序
- 技术积累--常用的文本分类的特征选择算法
- 程序算法与人生选择
- php 四种基础的算法 ---- 冒泡排序法
- 程序算法与人生选择
- Java_集合操作_多种最值算法,适时选择
- 算法与数据结构---选择排序
- 【算法导论学习-003】选择排序(SelectionSort)
- 算法 -- Java实现选择排序(图解 + 代码实现)
- 【每日算法】选择排序算法之直接选择排序
- 【算法】选择排序
- 基础算法-直接选择排序
- 数据结构基础算法整理归纳:选择排序(四)
- 算法基础遍之选择冒泡算法详解