不要在脸上留下眼泪:9.3.1 最简单排序实现
来源:百度文库 编辑:偶看新闻 时间:2024/04/29 08:16:56
9.3 冒泡排序
无论你学习哪种编程语言,在学到循环和数组时,通常都会介绍一种排序算法来作为例子,而这个算法一般就是冒泡排序。并不是它的名称很好听,而是说这个算法的思路最简单,最容易理解。因此,哪怕大家可能都已经学过冒泡排序了,我们还是从这个算法开始我们的排序之旅。
图9-3-19.3.1 最简单排序实现
冒泡排序(Bubble Sort)一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。冒泡的实现在细节上可以很多种变化,我们将分别就3种不同的冒泡实现代码,来讲解冒泡排序的思想。这里,我们就先来看看比较容易理解的一段。
- /* 对顺序表L作交换排序(冒泡排序初级版) */
- void BubbleSort0(SqList *L)
- {
- int i,j;
- for(i=1;i
length;i++) - {
- for(j=i+1;j<=L->length;j++)
- {
- if(L->r[i]>L->r[j])
- {
- swap(L,i,j); /* 交换L->r[i]与L->r[j]的值 */
- }
- }
- }
- }
这段代码严格意义上说,不算是标准的冒泡排序算法,因为它不满足“两两比较相邻记录”的冒泡排序思想,它更应该是最最简单的交换排序而已。它的思路就是让每一个关键字,都和它后面的每一个关键字比较,如果大则交换,这样第一位置的关键字在一次循环后一定变成最小值。如图9‐3‐2所示,假设我们待排序的关键字序列是{9,1,5,8,3,7,4,6,2},当i=1时,9与1交换后,在第一位置的1与后面的关键字比较都小,因此它就是最小值。当i=2时,第二位置先后由9换成5,换成3,换成2,完成了第二小的数字交换。后面的数字变换类似,不再介绍。
如何实现随机排序???
气泡排序和选择排序用链表实现
用指针实现冒泡排序
用指针实现冒泡排序
设计一个用链表表示的简单选择排序的算法,并实现之(试验报告)
用最简单的方法实现提取矩形边框
用最简单的方法实现提取矩形边框
什么工具最简单的实现图片的左右翻转
请问如何用ASP实现记录按1、2、3这样排序??
EXCEL中如何实现随机排序
在vb中如何实现组合排序?
用堆栈发实现N皇后排序
java中实现排序的问题
asp中怎么实现图片自动排序
EXCLE中如何实现自动排序?
用pascal语言实现希尔排序算法
各种排序算法实现和比较
OE中如何实现收件人排序
msflexgrid怎么实现通过双击某列来排序?
宿舍里两太电脑一个网线怎么样最简单了实现共享弄成局域网
如何用最简单的方法实现两台电脑同时上网
如果用最简单的方法来实现NOKIA6610手机的真唱铃声
如何在flash中实现最简单的公告牌功能?
如何在flash中实现最简单的照片浏览功能?