5个数通过7次比较排序的方法
2012-03-06 00:05
549 查看
5个数之间的大小关系构成的一个树形图T。T中的一个结点代表一个数,而一条边代表它所
关联的两个数的大小关系,T的根就是中位数。显然T中的一条边要由一次比赛来确定。在
下
面的图中,如果x大于y,则节点x在节点y的上方且x和y有一条边相连。另外,*表示一般的
数,o表示下一次即将进行比较的两个数。
第1步,先任取两个数比较,结果为:
*
|
* o o *
第2步,再取另外两个数比较,结果为:
o o
| |
* * *
第3步,按照上图比较其中两个标记为o的数,比较结果只有一种情况:
*
/ \
o *
|
* o
第4步,按照上图比较其中两个标记为o的数,比较结果有两种情况:
o o *
\ / \ / \
* * * *
| / \
* o o
第5步,按照上图比较其中两个标记为o的数,比较结果有两种情况:
* *
| / \
* * o
/ \ |
o o o
| |
* *
第6步,按照上图比较其中两个标记为o的数,比较结果有三种情况:
* * *
| | / \
* * o o
| | \ /
* * *
| / \ |
* o o *
|
*
其中第一种情况已经排好序了
第7步,按照上图比较其中两个标记为o的数,比较结果只有一种情况:
*
|
*
|
*
|
*
|
*
所以只需要7步比较就可以把5个数排好序
关联的两个数的大小关系,T的根就是中位数。显然T中的一条边要由一次比赛来确定。在
下
面的图中,如果x大于y,则节点x在节点y的上方且x和y有一条边相连。另外,*表示一般的
数,o表示下一次即将进行比较的两个数。
第1步,先任取两个数比较,结果为:
*
|
* o o *
第2步,再取另外两个数比较,结果为:
o o
| |
* * *
第3步,按照上图比较其中两个标记为o的数,比较结果只有一种情况:
*
/ \
o *
|
* o
第4步,按照上图比较其中两个标记为o的数,比较结果有两种情况:
o o *
\ / \ / \
* * * *
| / \
* o o
第5步,按照上图比较其中两个标记为o的数,比较结果有两种情况:
* *
| / \
* * o
/ \ |
o o o
| |
* *
第6步,按照上图比较其中两个标记为o的数,比较结果有三种情况:
* * *
| | / \
* * o o
| | \ /
* * *
| / \ |
* o o *
|
*
其中第一种情况已经排好序了
第7步,按照上图比较其中两个标记为o的数,比较结果只有一种情况:
*
|
*
|
*
|
*
|
*
所以只需要7步比较就可以把5个数排好序
相关文章推荐
- 最多7次比较解决5个数的排序问题的解法
- 对5个数进行排序,需7次比较的方法
- 对5个数进行排序,需7次比较的方法
- 6次比较求5个数中间值,7次比较排序
- 【算法设计与分析】5个数7次比较排序的算法
- Android 获取手机系统图片、拍照图片时回调后通过URI解析路径的方法,比较全面!!!!
- 数组排序方法的性能比较(2):Array.Sort<T>实现分析
- 各种内部排序算法复杂度的比较和排序方法的选择
- 我比较喜欢的两种排序方法(冒泡排序、选择排序)
- 排序方法的比较
- 通过gson json-javaben比较方便的方法
- 通过在jsp页面中比较主机服务器名的方式判断网页表单是不是外部提交方法
- [原创]详述IComparer,IComparable接口,实现自定义方法比较对象大小并排序(C#)
- 关于“主键-次键”排序的三种方法比较。
- 通过WebService返回数据的四种方法比较
- 数据排序方法的比较
- 各种排序方法比较
- 数组排序方法的性能比较(1):注意事项及试验
- 几种排序方法的比较
- java学习(2)数组详解(包括数据的初始化、比较、排序、重要方法)