冒泡排序(排序算法)

简介: 冒泡排序(排序算法)

1.冒泡排序可以将杂乱无章的数列排序整齐;

比如给定数组{5,2,1,4,3,6,7,8,9,10}经过冒泡排序可变成

{1,2,3,4,5,6,7,8,9,10};

2.算法原理

比较相邻元素,如果第一个比第二个大,就交换这两个元素,然后大的元素和后面元素比较,同理,如果比后面的大就交换这两个,直到最大的元素放在最后的位置上,完成一次冒泡排序,十个数据作比较的话,及第一个数字要和其他九个作比较,需要九次,第二个数字比较的话,就不需要和已经在结尾的最大数比较了10-1-1=8,只需要比较八次,一趟冒泡排序会把大的数放在后面,10个元素最多需要九趟。

3.代码展示

int main()
{
  int  arr[10] = {10,9,8,7,6,5,4,3,2,1};
  int sz = sizeof(arr) / sizeof(arr[0]);//数组长度
  int i;
  for (i = 0; i < sz - 1; i++)//趟数
  {
    int j = 0;
    for (j = 0; j < sz - 1 - i; j++)//比较次数
    {
      if (arr[j] > arr[j + 1])//前面大于后面,交换
      {
        int tmp = arr[j];
        arr[j] = arr[j + 1];
        arr[j + 1] = tmp;
      }
    }
    }
  for (i = 0; i < sz; i++)//打印数组
  {
    printf("%d ", arr[i]);
  }
}


3.运行展示


 

目录
相关文章
|
21天前
|
搜索推荐 算法 Python
python实现冒泡排序算法
python实现冒泡排序算法
30 0
|
2天前
|
机器学习/深度学习 搜索推荐 算法
【再识C进阶2(下)】详细介绍指针的进阶——利用冒泡排序算法模拟实现qsort函数,以及一下习题和指针笔试题
【再识C进阶2(下)】详细介绍指针的进阶——利用冒泡排序算法模拟实现qsort函数,以及一下习题和指针笔试题
|
12天前
|
算法
循环嵌套思路详解 | 一个“在盒子里过家家”的算法 -- 以冒泡排序与打印菱形为例(二)
本文介绍了如何运用特定思路解析和解决编程问题,特别是涉及双层循环的情况。首先,通过一个打印特定图案的例子,解释了将“盒子”作为思考单位的概念,即分析问题中每个循环的作用和内容。接着,以冒泡排序为例,展示了如何将问题分解为外层循环(趟数)和内层循环(每趟的比较与交换),并通过盒子思路简化理解和实现代码。最后,提到了菱形打印的代码优化,鼓励读者思考并应用这种思维方式。总的来说,文章强调了自然地理解和运用循环结构,而不是机械地记忆。
32 2
|
12天前
|
算法
循环嵌套思路详解 | 一个“在盒子里过家家”的算法 -- 以冒泡排序与打印菱形为例(一)
本文介绍了编程中的一种思想,通过菱形打印问题来阐述如何理解和使用循环嵌套。文章提到,初学者在面对循环结构时,可以通过先识别代码块的结束括号来理解整体结构,提高阅读效率。作者提出了“在盒子里过家家”的理解思路,将外层循环看作一个个盒子,内层循环视为盒子里的操作,弱化循环嵌套的概念,强调以盒子为单位思考问题。此外,文章还通过示例解释了内外循环的关系,帮助读者更好地理解循环控制和执行过程。
35 3
|
21天前
|
搜索推荐 算法 Java
sort-01-bubble sort 冒泡排序算法详解
这是一个关于排序算法的系列文章摘要。作者整理了10种不同的排序算法,包括冒泡排序、快速排序、选择排序、堆排序、插入排序、希尔排序、归并排序、计数排序、桶排序和大文件外部排序。文章详细介绍了冒泡排序的工作原理、流程,并提供了代码实现,强调了在实现中考虑的改进点,如统一接口、实用性增强和日志输出。此外,还提供了一个排序接口和工具类以方便使用,并通过测试代码和日志展示了排序过程。整个系列旨在帮助读者理解和掌握排序算法。相关代码已开源在GitHub。
|
21天前
|
搜索推荐 算法 Python
用伪代码描述冒泡排序算法及其实现
用伪代码描述冒泡排序算法及其实现
56 0
|
21天前
|
搜索推荐 算法 C语言
【排序算法】C语言实现选择排序与冒泡排序
【排序算法】C语言实现选择排序与冒泡排序
|
21天前
|
存储 算法 搜索推荐
【数据结构与算法】归并排序(详解:递归与非递归的归并排序 | 赠:冒泡排序和选择排序)
【数据结构与算法】归并排序(详解:递归与非递归的归并排序 | 赠:冒泡排序和选择排序)
|
21天前
|
搜索推荐 算法 Java
Java基础(冒泡排序算法)
Java基础(冒泡排序算法)
20 3
|
21天前
|
算法 搜索推荐
【数据结构】八大排序之冒泡排序算法
【数据结构】八大排序之冒泡排序算法
19 1