8.5.2 冒泡法排序实例
冒泡法排序实例是C语言中的一个经典算法,实现多个数值的排序。方法是多次循环进行比较,每次比较时将最大数移动到最上面。每次循环时,找出剩余变量里的最大值,然后减小查询范围。这样经过多次循环以后,就完成了对这个数组的排序。这种排序的算法可用如图8-1所示的来表示。
冒泡法排序使用了反复循环和比较的算法,执行了下面这些步骤。
在第一次循环时,拿第一个数与第二个数进行比较,如果第一个数小于第二个数,就用一个中间变量使这两个数交换。这样就使第一和第二个数从大到小排列。
|
| 图8-1 冒泡法排序的算法 |
再用第一个数与第三个数比较,使这两个数从大到小排列。用同样的方法,用第一个数与后面所有的数进行比较。
经过了第一轮循环比较以后,第一个数一定是所有数里面最大的数。
进行第二轮比较。这时让第二个数与后面所有的数比较,使这个数是这些数里面的最大数。
用循环的方法,依次用后面的一个数与这个数后面的所有数进行比较,这样就完成了这些数的从大到小排序。
下面的程序是冒泡法排序的例子。在这个程序中需要注意两次循环比较。
代码8-11 冒泡法排序:\源文件\08\8.11.c
#include <stdio.h> |
| 回书目 上一节 下一节 |
|
· 上周拒绝服务攻击(DDo.. · 08年5月各大网上书店及.. · 2008年5月24日软考试题.. · 软件设计师专家临考模.. · 上周网络管理员专家自.. · 网络工程师自测获奖名.. |
· 08年4月各大网上书店及.. · 系统分析师自测获奖名.. · Linux结课考试自测获奖.. · 上周Linux系统命令的使.. · 上周真题冲刺测试获奖.. · 全国计算机等考四级模.. |
|
||||
| · 勇闯IT培训黑色围城 · 如何有效防御SQL注入攻.. · 2008年上半年全国软考.. · 选择适合自己的IT认证 · IPv6协议--拓展网络无.. · 了解统一威胁管理(UTM).. · 调查:十大发现 解秘技.. · 技术人求职简历完备手册 |
· Vista SP1对决XP SP3 · 运营商封堵ADSL共享 中.. · LAMP技术精解 · PHP开发应用手册 · 解析35岁技术人的价值.. · 汶川大地震 IT技术人在.. · SOA 面向服务架构 · 龙芯要做中国的“奔腾” |
|||
|
||||
| · SQL Server 2008/2005.. · SOA 面向服务架构 · SQL Server 2008/2005.. · iSCSI应用与发展 · RAID——磁盘阵列基础 · Apache技术专题 · 三层交换技术专题 · SQL Server入门到精通 |
· Apache技术专题 · 国际文档格式标准开战 · 路由器设置与口令恢复 · 打造安全服务器 · PHP开发应用手册 · SOA 面向服务架构 · 企业数据恢复指南 · 了解统一威胁管理(UTM).. |
|||
|
||||
| · iSCSI应用与发展 · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · iSCSI应用与发展 · 三层交换技术专题 · Apache技术专题 |
· RAID——磁盘阵列基础 · 企业数据恢复指南 · 路由器设置与口令恢复 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · 反垃圾邮件技术应用 · 访问控制列表(ACL)介绍 · PHP开发应用手册 |
|||