选择排序
来源:互联网 发布:类似网络剪刀手的软件 编辑:程序博客网 时间:2024/05/08 03:06
选择排序
1、选择排序:直接选择排序就是选择排序的一种,还是一种堆排序
2、关键字字:选择。就是“挑”的意思:
从一个序列中,找出最大的元素(挑),放在第一个单元格中,重复这个方法,直到只剩下一个元素为止。
3、从大到小排序,假设第一位置为最大的单元格,带颜色的表示要进行比较的两个单元格
原始数据:
0
4
6
2
8
5
1
9
7
3
第1轮排序(从这10个变量中选出最大的共需比较9次)
第1次交换,4比0大交换
4
0
6
2
8
5
1
9
7
3
第2次交换,6比4大交换
6
0
4
2
8
5
1
9
7
3
第3次交换,6比 2大不交换
6
0
4
2
8
5
1
9
7
3
第4次交换,8比6大交换
8
0
4
2
6
5
1
9
7
3
第5次交换,5没有8大不交换
8
0
4
2
6
5
1
9
7
3
第6次排序,1没有8大不交换
8
0
4
2
6
5
1
9
7
3
第7次排序,9比8大交换
9
0
4
2
6
5
1
8
7
3
第8次排序,7没有9大不交换
9
0
4
2
6
5
1
8
7
3
第9次排序,3没有9大不交换
9
0
4
2
6
5
1
8
7
3
第2轮排序(从剩下的9个变量中选出最大的共需比较8次)
第1次交换,4比0大交换
4
0
2
6
5
1
8
7
3
第2次交换,2没有4大不交换
4
0
2
6
5
1
8
7
3
第3次交换,6比4大交换
6
0
2
4
5
1
8
7
3
第4次交换,5没有6大不交换
6
0
2
4
5
1
8
7
3
第5次交换,1没有6大不交换
6
0
2
4
5
1
8
7
3
第6次交换,8比6大交换
8
0
2
4
5
1
6
7
3
第7次交换,7没有8大不交换
8
0
2
4
5
1
6
7
3
第8次交换,3没有8大不交换
8
0
2
4
5
1
6
7
3
第3轮排序(从剩下的8个变量中选出最大的共需比较7次)
第1次交换,2比0大交换
2
0
4
5
1
6
7
3
第2次交换,4比2大交换
4
0
2
5
1
6
7
3
第3次交换,5比4大交换
5
0
2
4
1
6
7
3
第4次交换,1没有4大不交换
5
0
2
4
1
6
7
3
第5次交换,6比5大交换
6
0
2
4
1
5
7
3
第6次交换,6没有7大不交换
7
0
2
4
1
5
6
3
第7次交换,3没有7大不交换
7
0
2
4
1
5
6
3
第4轮排序(从剩下的7个变量中选出最大的共需比较6次)
第1次交换,2比0大交换
2
0
4
1
5
6
3
第2次交换,4比2大交换
4
0
2
1
5
6
3
第3次交换,1没有4大不交换
4
0
2
1
5
6
3
第4次交换,5比4大交换
5
0
2
1
4
6
3
第5次交换,6比5大交换
6
0
2
1
4
5
3
第6次交换,3没有6大不交换
6
0
2
1
4
5
3
第5轮排序(从剩下的6个变量中选出最大的共需比较5次)
第1次交换,2比0大交换
2
0
1
4
5
3
第2次交换,1没有 2大不交换
2
0
1
4
5
3
第3次交换,4比2大交换
4
0
1
2
5
3
第4次交换,5比4大交换
5
0
1
2
4
3
第5次交换,3没有 5大不交换
5
0
1
2
4
3
第6轮排序(从剩下的5个变量中选出最大的共需比较4次)
第1次交换,1比0大交换
1
0
2
4
3
第2次交换,1比2大交换
2
0
1
4
3
第3次交换,4比2大交换
4
0
1
2
3
第4次交换,3比4大交换
4
0
1
2
3
第7轮排序(从剩下的4个变量中选出最大的共需比较3次)
第1次交换,1比0大交换
1
0
2
3
第2次交换,2比1大交换
2
0
1
3
第3次交换,3比2大交换
3
0
1
2
第8轮排序(从剩下的3个变量中选出最大的共需比较2次)
第1次交换,1比0大交换
1
0
2
第2次交换,2比1大交换
2
0
1
第9轮排序(从剩下的2个变量中选出最大的共需比较1次)
第1次交换,1比0大交换
1
0
选择排序图
VB代码:
Fori=1 to 9 //外循环i n-1
For j=i+1 to 10 //内循环i+1
If a(i)<a(j) then
t=a(i):a( i)=a(j):a(j)=t
End if
Next
Next
C#代码:
static void(int[]group)
{
int temp;
int pos=0;
for(inti=0;i< group.Length-1;i++)
{
pos=i;
for(intj=i+1;j<group.Length;j++)
{
if(group[j]<group[pos])
{
pos=j;
}
}//第i个数与最小的数group[pos]交换
temp=group[i];
group[i]=group[pos];
group[pos]=temp;
}
}
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序:
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- Java8 Lambda
- 原型链
- WIN7系统32位或者64位运行ARCENGINE报错的解决方法
- ppt-配色
- Android使用ContentObserver进行实时短信填写
- 选择排序
- 什么时候用堆,什么时候用栈?
- Android Studio Mac 常用快捷键
- js文件处理
- Java Web 学习笔记之一:服务器获取表单上传的文件
- Spring-bean的装配
- Mysql各版本安装包下载地址
- opensslmd5算法源码c++版
- 格式化字符串-学习笔记