标签:
推荐可视化数据结构与算法工具 http://zh.visualgo.net/
点第一个图排序 进来后如图
右上角的两种模式:教学模式 浏览模式
下面我来实操选择排序的流程
点最上头的SELECT
点左下角的Create
点Random随机生成也可以,也可以自己输入数字. 注意只能是1-50
注意不要点Sorted,Nearly Sorted
然后go
你会发现可视化区域
同时打开右下角的两个框框
这是我们将要工作的界面
现在点Create下的Sort
go
可视化区域在动啊,把最左下角移动到slow,然后按键盘的←(方向键的左键,可不是回退哦)
也就是你可以用方向键的左右来控制动画的运行.
伪代码看不懂可以不看,重点是橙色的部分和动画
选择排序第一步
Set 1 as the current minimum, then iterate through the remaining unsorted elements to find the true minimum.
把第一个数1 设为当前最小值,遍历未排序的元素寻找正确的最小值.
第二步
此时发现了比3小的,
3这一轮后面的值都是在跟1比较.
综上:就可以理解了为甚么选择排序要用到三个变量. //注意可视化区域除了原来的 浅蓝色外 有三种颜色.
SELECT:第一个跟2,3,4后面的比较选择最小的. //依次比较依次遍历,这个是内遍历(2)
第二个....
这个是外遍历 (1)
但是我们不可能每次选到的那个数都是最小值(除非已排好),若发现那轮的第一个数还小的,我们要把最小值的荣誉颁给他,后面的人就跟他比,若还比他小就再颁给另外的更小的.
所以我们需要一个变量来存储最小值. (3)
标签:
原文地址:http://www.cnblogs.com/xzqhextt/p/4535793.html