C语言的十大组数之冒泡排序法的应用

createh514小时前技术教程1

情景回顾

上节回顾:C语言的数组:跨越一个阶梯,如何用一种数据结构存储无限多的数据?

本节重点

本节重点:冒泡排序法



关注不迷路

微信公众号:工控小新


学习工控知识就来工控小新,为你提供工控笔记知识:EPLAN电气绘图 | TIA博图基础 | CAD | C语言教学 | 单片机基础 | 三菱PLC ... 每日持续更新中



冒泡排序是一种简单而直观的排序方法,它的基本思想是从数组的第一个元素开始,依次比较相邻的两个元素,如果它们的顺序不符合要求,就交换它们的位置,这样一趟下来,最大或最小的元素就会被移动到数组的末尾。然后重复这个过程,直到所有的元素都被排序好为止。

冒泡排序的时间复杂度是O(n2),空间复杂度是O(1)。它的优点是实现简单,不需要额外的空间,稳定性好。它的缺点是效率低,当数组已经有序或接近有序时,仍然需要进行很多无用的比较和交换。

1. 算法步骤

比较相邻的元素。如果第一个比第二个大,就交换他们两个。

对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。

针对所有的元素重复以上的步骤,除了最后一个。

持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

2. 排列大小:

冒泡排序的C语言实现如下:

#include <stdio.h>
void bubble_sort(int arr[], int len) 
{
      int i, j, temp;
      for (i = 0; i < len - 1; i++)
              for (j = 0; j < len - 1 - i; j++)
                      if (arr[j] > arr[j + 1]) 
                      {
                              temp = arr[j];
                              arr[j] = arr[j + 1];
                              arr[j + 1] = temp;
                      }
}
int main() 
{
      int arr[] = { 22, 34, 3, 32, 82, 55, 89, 50, 37, 5, 64, 35, 9, 70 };
      int len = sizeof(arr) / sizeof(arr[0]);
      bubble_sort(arr, len);
      int i;
      for (i = 0; i < len; i++)
              printf("%d ", arr[i]);
      return 0;
}

#挑战30天在头条写日记#

相关文章

C++ 初学阶段-冒泡法排序(c++冒泡排序模板)

C++ 初学阶段-冒泡法排序(c++冒泡排序模板)

#头条创作挑战赛#学程序重要的思维,冒泡法排序冒泡法排序,从第一个数值开始分别与后面的数值对比大小。大与就互换位置,直到换到最后一个数字。排序前数组:10,47,3,82,55,90,38,60,21...

冒泡、插入、选择排序(C语言)(c语言冒泡排序需要注意什么)

以下排序算法默认从小到大的升序排序。冒泡排序思路从数组的第一个数a[0]开始,向后遍历,每次比较a[i]和a[i+1]的值若a[i]大于a[i+1],就交换两个位置的数的值。重复上述1和2的操作至a[...

常用排序算法:冒泡排序,快速排序

在生活中,我们离不开排序。例如上体育课时,同学们会按照身高顺序进行排队;又如每一场考试后,老师会按照考试成绩排名次。在编程的世界中,应用到排序的场景也比比皆是。例如当开发一个学生 管理系统时,需要按照...

Python | 数据结构 - 冒泡排序和选择排序

排序算法比较排序算法平均时间复杂度最坏时间复杂度空间复杂度是否稳定冒泡排序O(n2)O(n2)O(1)是选择排序O(n2)O(n2)O(1)不是插入排序O(n2)O(n2)O(1)是希尔排序O(n1....

冒泡排序算法(冒泡排序算法代码)

冒泡排序是一种简单的排序算法,它重复地遍历要排序的列表,一次比较两个元素,并且如果它们的顺序错误就交换它们。重复地进行这个过程直到整个列表都是有序的。以下是用C语言实现冒泡排序算法的示例代码:#inc...