【C语言】冒泡排序算法和冒泡排序的时间复杂度

news/2024/11/28 14:31:45/

提示:冒泡排序算法是非常重要的算法,一定要熟练掌握。思路可以参考一位大佬博主的博客:帅地。介绍的十分详细,理解了之后,可以参考我的代码
,是入门级别的,比较好懂。关于时间复杂度是数据结构的内容,没学过的请至我的博客:【数据结构】时间复杂度。

文章目录

  • 一、代码的实现
  • 二,冒泡排序的时间复杂度


一、代码的实现

#include<stdio.h>
void bubble_sort(char* a, int sz)
{int i = 0;int j = 0;int temp = 0;//标记法:如果一开始或中途就已经排序完成//我们就要及时终止循环,不然前面都排好了,我们为什么还要在那一个个交换,岂不是浪费时间?//所以我们要判断什么时候排序完成,就用标记法//每趟都要判断是否已经排序好了int flag = 0;for (i = 0; i < sz - 1; i++)//趟数{flag = 1;//比较次数//第一趟,俩俩比较9次,找最大的泡泡都排排到最右边,既然一个大泡泡已经排序好了//即还剩9个泡泡还没排序,第二趟,俩俩比较8次(比较次数减一),找到剩下的9个泡泡//的较大泡泡排到倒数第二个位置,依次下去for (j = 0; j < sz - 1 - i; j++){if (a[j] > a[j + 1]){//学习交换两个变量时,灵活应用临时变量temp = a[j];a[j] = a[j + 1];a[j + 1] = temp;//如果进入这,就说明还没排序好flag = 0;}}if (flag == 1){break;}}
}
int main()
{char arr[] = { 0,1,2,3,4,5,6,7,8,9 };int sz = sizeof(arr) / sizeof(arr[0]);int i = 0;bubble_sort(arr, sz);for (i = 0; i < sz; i++){printf("%d ", arr[i]);}return 0;
}

二,冒泡排序的时间复杂度

假设我们只冒泡排序4个数,也就是我们需要排序3趟,第一趟比较俩俩比较3次,第二趟2次,第三趟1次,合起来一共3+2+1=6次。按照这样的算法,如果我们要冒泡排序N个数,也就是我们需要冒泡排序N-1趟,即我们一共要比较(N-1)+(N-2)+(N-3)+(N-4)+…+3+2+1=(N-1)(1+N-1)/2=N(N-1)/2。所以根据时间复杂度的算法,冒泡排序法的时间复杂度为O(N^2)。


http://www.ppmy.cn/news/141131.html

相关文章

亚马逊电吹风、风扇、热风梳、洗脸仪、蒸脸仪、指甲灯、UL859认证报告流程

现在亚马逊平台竞争也愈显激烈&#xff0c;不合规范的操作也越来越多&#xff0c;随之平台要求越来越高&#xff01;近期收到亚马逊严查UL认证的影响&#xff0c;有卖家反映自己的产品被亚马逊下架了&#xff0c;并且收到了一份邮件通知&#xff0c;由于产品缺少UL认证被删除li…

C语言实现冒泡排序算法

冒泡排序算法步骤&#xff1a; 1.相邻的元素两两比较&#xff0c;大的放右边&#xff0c;小的放左边 2.第一轮比较完毕之后&#xff0c;最大值就已经确定&#xff0c;第二轮可以少循环一次&#xff0c;后面以此内推 3.如果数组中有n个数据&#xff0c;总共我们只要执行n-1轮代码…

将“每日造型”变成长久习惯,戴森Airwrap™美发棒为何成为最好的“美丽投资”?

做头发、换发型是一个大工程&#xff0c;这几乎成了一种固定印象。虽然卷发棒已成为几乎“人手必备”的头发造型工具&#xff0c;但使用起来往往“现实很骨感”&#xff0c;不是使用频次极低&#xff0c;就是被束之高阁&#xff0c;每天都自己做头发换造型&#xff0c;只能是一…

51单片机智能语音温控摇头电风扇落地扇可红外遥控可PWM调速定时温度显示

实践制作DIY- GC0073-智能语音温控摇头电风扇 一、功能说明&#xff1a; 基于51单片机设计-智能语音温控摇头电风扇 功能介绍&#xff1a; 硬件组成&#xff1a;STC89C52单片机语音识别模块DS18B20温度传感器ULN2003步进电机&#xff08;摇头&#xff09;5V风扇LCD1602显示…

高速吹风筒IPM方案

高速吹风筒是利用高转速产生的大风量来快速吹干头发&#xff0c;同时&#xff0c;高转速也使得电机与叶轮的体积缩小&#xff0c;便于设计出灵巧便携的外形。12万转的高速风筒的整体解决方案&#xff0c;满足高速吹风筒的所有应用场景&#xff0c;让客户用芯能的功率器件能更快…

oracle与mysql的存储区别

1.创建存储过程语句不同 oracle create or replace procedure P_ADD_FAC(id_fac_cd IN ES_FAC_UNIT.FAC_CD%TYPE) as 复制 mysql DROP PROCEDURE IF EXISTS SD_USER_P_ADD_USR; create procedure P_ADD_FAC(id_fac_cd varchar(100)) 复制 1.在创建存储过程时如果存在…

2021年中国电吹风零售数量、金额及专利申请数量情况分析[图]

一、吹风机零售情况 吹风机是由一组电热丝和一个高转速小风扇组合而成的。通电时&#xff0c;电热丝会产生热量&#xff0c;风扇吹出的风经过电热丝&#xff0c;就变成热风。如果只是小风扇转动&#xff0c;而电热丝不热&#xff0c;那么吹出来的就只是风而不热了。2021年中国…

小程序或者Uniapp保存图片异常 - Ios系统

发现部分图片通过 saveImageToPhotosAlbum 接口无法保存&#xff0c;报错信息如下 saveImageToPhotosAlbum:fail [Gallery:-1]未能完成操作。&#xff08;PHPhotosErrorDomain错误-1。&#xff09; 因为都是网络图片, 前置需要通过 downloadFile 接口下载,拿到临时路径&#xf…