历史上的今天
今天是:2025年03月10日(星期一)
2018年03月10日 | 数据排序程序设计
2018-03-10 来源:eefocus
数据排序就是将一批数由小到大(升序)排列,或由大到小(降序)排列。下面介绍无符号数据升序排序程序设计。
最常用的数据排序算法是冒泡法。冒泡法是相邻数互换的排序方法,因其过程类似水中气泡上浮,故称冒泡法。排序时,从前向后进行相邻两个数的比较,如果数据的大小次序与要求的顺序不符时,就将两个数互换;否则,顺序符合要求就不互换。如果进行升序排序,应通过这种相邻数互换方法,使小数向前移,大数向后移。如此从前向后进行一次次相邻数互换(冒泡),就会把这批数据的最大数排到最后,次大数排在倒数第二的位置,从而实现一批数据由小到大的排列。
假设有7个原始数据的排列顺序为6、4、1、2、5、7、3。第一次冒泡的过程是:

如此进行,各次冒泡的结果如下:

由上面的冒泡法可以看出,对于,n个数,理论上应进行(n-l)次冒泡才能完成排序,但实际上有时不到(n-1)次就已完成排序。例如,上面的7个数,应进行6次冒泡,但实际上第4次冒泡时就已经完成了排序。如何判定排序是否已经完成呢?就是看各次冒泡中是否有互换发生,如果有数据互换,则排序还没完成;否则就表示已经排好序。在程序设计中,常用设置互换标志的方法,用该标志的状态表示在一次冒泡中是否有互换进行。下面介绍具体的冒泡法排序过程。
一批单字节无符号数,以RO为首地址指针,R2中为字节数,将这批数进行升序排列。程序框图如图4-2所示。
程序如下:
上一篇:分支转移程序设计
下一篇:数据极值查找程序设计
史海拾趣
|
各位大侠,在dxp 2004中有没有三排 15针串口(VGA)这个元件?如果有,那是在哪个库呢?而且还要有封装!我找了很久都没找到!如果有谁有这个元件库,可以给我吗?不胜感激!… 查看全部问答> |
|
我用的是 jxarm9 2410 的板子 实验环境是ADT 中断请求做了 ,中断使能也做了。正常应该是每秒自动触发一次tick中断,进入中断处理函数才对啊。但就是不进入中断服务函数。 请高手们帮帮我吧 感激不尽。 以下是我的代码 /* 包含文 ...… 查看全部问答> |
|
我在学习时查到了到了这些资料,好多以后学习会慢慢用的上,今天把他们归结到一起,放在论坛上,省的大家花时间去找我们一起努力哦 [ 本帖最后由 孤独剑 于 2011-3-22 19:55 编辑 ]… 查看全部问答> |
|
在0.13um工艺下用全定制方法设计一32位ALU模块,然后基于Hspice对电路图进行延时分析与优化;采用模块化的设计方法完成版图设计,通过DRC和LVS检查。 有没有想做的,速度报名! … 查看全部问答> |




