算法--排序
2016-07-23 18:04
162 查看
选择排序
(一)解题思路:
1、第一轮排序,在随机数组中选出最小的记录,将它第1个记录交换,使有序区记录个数增加1个(即记录个数变为1个),随机数组记录个数减少1个。
2、第二轮排序,在随机数组中选出未排序中最小的记录,将它随机数组的第2个记录交换,使有序区记录个数增加1个(即记录个数变为2个), 随机数组记录个数减少1个。
3、如此下去,重复以上过程,直至最终完成排序。
(二)代码如下:
For i = 1 To 9 For j = i + 1 to 10 if a(j) < a(i) then t = a(i) a(i)=a(j) a(j)=t end if next jnext i
(三)图形表示
(四)选择排序舞蹈视频链接
http://v.game.sohu.com/play_35218033.html?fromvsogou=1
冒泡排序
(一)解题思路
1、第一轮,首先比较第1个和第2个数,将小数放前,大数放后;然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一轮结束,将最大的数放到了最后。
2、第二轮,仍从第一个数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二轮结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。
3、如此下去,重复以上过程,直至最终完成排序。
(二)代码表示
For i = 1 + 9 For j = 1 to 10-i if a(j) < a(j+1) then t = a(i) a(j)=a(j+1) a(j+i)=t end if next jnext i
(三)图形表示
(四)冒泡排序舞蹈视频链接
http://v.ku6.com/show/wXbEz_f1u8eB3D8ngrHmOg...html?fromvsogou=1
插入排序
(一)解题思路(从大到小排列)
第一轮,一组无序数列,从第二个开始,与第一个数比较,若第二个数大于第一个数,则第二个数前插,第一个数后移,前两个数则形成有序区;
第二轮,第三个数依次与前两个数从后像前比较,然后将第三个数插入有序区内。
第三轮,依次进行下去,进行了(n-1)趟扫描以后就完成了整个排序过程。
(二)代码表示
(三)图形表示
(四)插入排序舞蹈视频连接
http://v.youku.com/v_show/id_XMTY0NjQ2ODY5Ng==.html
(一)解题思路:
1、第一轮排序,在随机数组中选出最小的记录,将它第1个记录交换,使有序区记录个数增加1个(即记录个数变为1个),随机数组记录个数减少1个。
2、第二轮排序,在随机数组中选出未排序中最小的记录,将它随机数组的第2个记录交换,使有序区记录个数增加1个(即记录个数变为2个), 随机数组记录个数减少1个。
3、如此下去,重复以上过程,直至最终完成排序。
(二)代码如下:
For i = 1 To 9 For j = i + 1 to 10 if a(j) < a(i) then t = a(i) a(i)=a(j) a(j)=t end if next jnext i
(三)图形表示
(四)选择排序舞蹈视频链接
http://v.game.sohu.com/play_35218033.html?fromvsogou=1
冒泡排序
(一)解题思路
1、第一轮,首先比较第1个和第2个数,将小数放前,大数放后;然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一轮结束,将最大的数放到了最后。
2、第二轮,仍从第一个数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二轮结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。
3、如此下去,重复以上过程,直至最终完成排序。
(二)代码表示
For i = 1 + 9 For j = 1 to 10-i if a(j) < a(j+1) then t = a(i) a(j)=a(j+1) a(j+i)=t end if next jnext i
(三)图形表示
(四)冒泡排序舞蹈视频链接
http://v.ku6.com/show/wXbEz_f1u8eB3D8ngrHmOg...html?fromvsogou=1
插入排序
(一)解题思路(从大到小排列)
第一轮,一组无序数列,从第二个开始,与第一个数比较,若第二个数大于第一个数,则第二个数前插,第一个数后移,前两个数则形成有序区;
第二轮,第三个数依次与前两个数从后像前比较,然后将第三个数插入有序区内。
第三轮,依次进行下去,进行了(n-1)趟扫描以后就完成了整个排序过程。
(二)代码表示
for j = i - 1 to 1 step - 1 if a (j + 1) > a(j) then exit for tmp = a(j + 1) a(j + 1)=a(j) a(j) = tmp next j
(三)图形表示
(四)插入排序舞蹈视频连接
http://v.youku.com/v_show/id_XMTY0NjQ2ODY5Ng==.html
相关文章推荐
- 关于java中继承抽象类和实现接口的区别
- apache开启虚拟主机VHOST后 localhost无法访问,出现Forbidden 403
- Valid Number
- 控件封装的一点心得
- python学习——编写Web App骨架
- mysql中key 、primary key 、unique key 与index区别
- GCC的使用及常用选项介绍
- 深入理解Intent和IntentFiler(一)
- jQuery基础-DOM篇2
- android中的ListView数据量大时如何提高效率。。。。
- Swift 001.简单值
- Android开发工具:Eclipse与Android Studio 快捷键对比
- 异面直线的公垂线公式
- C++栈上申请过大内存导致stackoverflow
- 1.Two Sum
- Linux入门之bash学习
- MFC中Picture控件,将位图转换成任意大小再放入控件中
- 机器学习与R笔记之线性回归
- linux 安装软件之----------CentOS6.5安装与配置Mysql数据库
- 一次activity弹出dialog 的按键事件记