`
amanhu
  • 浏览: 12889 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

冒泡排序——C++

 
阅读更多

冒泡排序

1、排序方法
 将被排序的记录数组R[1..n]垂直排列,每个记录R[i]看作是重量为R[i].key的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,就使其向上"飘浮"。如此反复进行,直到最后任何两个气泡都是轻者在上,重者在下为止。
(1)初始
  R[1..n]为无序区。

(2)第一趟扫描
  从无序区底部向上依次比较相邻的两个气泡的重量,若发现轻者在下、重者在上,则交换二者的位置。即依次比较(R[n],R[n-1]),(R[n-1],R[n-2]),…,(R[2],R[1]);对于每对气泡(R[j+1],R[j]),若R[j+1].key<R[j].key,则交换R[j+1]和R[j]的内容。
 第一趟扫描完毕时,"最轻"的气泡就飘浮到该区间的顶部,即关键字最小的记录被放在最高位置R[1]上。

(3)第二趟扫描

  扫描R[2..n]。扫描完毕时,"次轻"的气泡飘浮到R[2]的位置上……
 最后,经过n-1趟扫描可得到有序区R[1..n]
注意:
  第i趟扫描时,R[1..i-1]和R[i..n]分别为当前的有序区和无序区。扫描仍是从无序区底部向上直至该区顶部。扫描完毕时,该区中最轻气泡飘浮到顶部位置R[i]上,结果是R[1..i]变为新的有序区。

转自:http://student.zjzk.cn/course_ware/data_structure/web/paixu/paixu8.3.1.1.htm

分享到:
评论

相关推荐

    冒泡排序——C++代码

    在本案例中,我们讨论的是用C++实现冒泡排序的方法。 C++是面向对象的编程语言,尽管冒泡排序更常与C语言关联,但其实它同样适用于C++。C++提供了丰富的库函数和语法特性,使得编写排序算法更为便捷。下面,我们将...

    《数据结构——C++实现》(第二版)课本源代码

    4. **排序和查找算法**:快速排序、归并排序、堆排序、冒泡排序、插入排序、二分查找等。这些算法在处理大量数据时非常重要。 5. **动态规划和贪心算法**:这些算法常用于解决优化问题,源代码可能会包含一些典型的...

    数据结构与程序设计—— C++描述(高等教育出版社)

    此外,书中的一个重要部分是关于排序和搜索算法的讲解,如冒泡排序、选择排序、插入排序、快速排序、归并排序、二分查找等。这些算法不仅对理解数据结构至关重要,也是实际编程中经常使用的工具。 在C++描述部分,...

    数据结构、算法与应用——C++语言描述.rar

    《数据结构、算法与应用——C++语言描述》是一本深入探讨计算机科学核心领域的经典教材。数据结构和算法是编程的基础,它们对于理解和优化程序性能至关重要。本书通过C++语言来阐述这些概念,使得读者能够更好地掌握...

    对数组进行 冒泡排序法——C语言代码

    冒泡排序是一种基础的排序算法,它通过重复遍历待排序的数组,比较相邻元素并交换位置,使得每个元素都能逐步“浮”到其正确的位置上。在C语言中实现冒泡排序,我们可以理解以下几个关键点: 1. **基本概念**: - ...

    多个排序算法的比较————C++

    冒泡排序是最基础的排序算法之一,通过不断交换相邻的错误位置元素来达到排序的目的。它的时间复杂度为O(n^2),在大数据量时效率较低。 2. **选择排序(Selection Sort)** 选择排序每次找到当前未排序部分中最小...

    起泡排序法比较和移动次数——C++代码

    在C++中实现起泡排序,我们可以定义一个函数,该函数接受一个整型数组和数组的长度作为参数。以下是起泡排序的基本步骤: 1. **初始化**: 设置一个标志变量`swapped`,用于记录在一次完整的遍历中是否有元素交换过...

    C语言冒泡排序函数(csdn)————程序.pdf

    冒泡排序是一种简单的排序算法,它的基本思想是通过重复遍历待排序的数列,一次比较两个元素,如果他们的顺序...在实际开发中,C++标准库提供了`std::sort`函数,它采用的排序算法比冒泡排序更高效,适用于各种情况。

    数据结构与算法——C++版.rar

    常见算法包括排序(如冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序)、搜索(如线性搜索、二分搜索)、图算法(如深度优先搜索、广度优先搜索、最短路径算法Dijkstra、Floyd-Warshall)、动态规划等。...

    数据结构与算法分析——C++描述(第3版)

    书中深入讲解了排序算法(冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序等)、查找算法(顺序查找、二分查找、哈希查找)以及图算法(深度优先搜索、广度优先搜索、最短路径算法如Dijkstra和Floyd算法...

    第四章 简单排序(C++)_PDF(2020.06.10).rar

    首先,我们来讨论最基本的排序算法——冒泡排序。冒泡排序通过重复遍历待排序的数列,比较每对相邻元素,如果顺序错误则交换,直到遍历结束为止。它的主要优点是实现简单,但对于大数据集来说,效率较低。 接下来是...

    数据结构算法与应用——C++语言描述英文原版

    本书涵盖了一系列经典的算法,如排序(冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序)和搜索(线性搜索、二分查找)。这些算法在实际编程中有着广泛的应用,对提高代码效率至关重要。 3. C++语言描述...

    数据结构与算法——C++版

    算法部分涵盖了排序(如冒泡排序、快速排序、归并排序、堆排序等)、查找(线性查找、二分查找、哈希查找)、图论(最短路径、拓扑排序)和递归等主题。排序算法是数据处理的基础,它们在效率上各有千秋,快速排序在...

    数据结构与算法——C++版(第3版)源文件

    3. **排序与搜索算法**:书中可能会讲解各种排序算法(冒泡排序、插入排序、选择排序、快速排序、归并排序、堆排序等)和搜索算法(顺序搜索、二分搜索、深度优先搜索、广度优先搜索等)。排序算法用于整理数据,而...

    《C++_JAVA集中上机》实习报告——图示冒泡排序.pdf

    《C++/JAVA集中上机》实习报告——图示冒泡排序.pdf 本文档是关于C++/JAVA集中上机的实习报告,主要介绍了图示冒泡排序算法的设计和实现。下面是从标题、描述、标签和部分内容中提取的相关知识点: 一、课程设计的...

    数据结构与算法——C++版(第2版)

    常见的算法包括排序(如冒泡排序、快速排序、归并排序)、搜索(如二分查找、深度优先搜索、广度优先搜索)、图算法(如Dijkstra最短路径算法、Floyd-Warshall所有对最短路径算法)等。在C++中,我们可以利用模板类...

    zyq2652192993zyq#Advance-Algorithm#排序——冒泡排序1

    冒泡排序法的思想是:从头到尾比较相邻的两个元素,将小的换到前面,大的换到后面。经过了从头到尾的一趟比较,就把最大的元素交换到了最后一个位置。依此类推,经过第n-

Global site tag (gtag.js) - Google Analytics