C言语冒泡排序算法及代码
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,根本思惟及举例阐明冒泡排序的根本思惟就是不时比拟相邻的两个数,让较大的元素不时地往后移。经由一轮比拟,就选出最大的数;经由第2轮比拟,就选出次大的数,以此类推。下面以对 3 2 4 1 停止冒泡排序阐
千家信息网最后更新 2025年12月02日C言语冒泡排序算法及代码
根本思惟及举例阐明
冒泡排序的根本思惟就是不时比拟相邻的两个数,让较大的元素不时地往后移。经由一轮比拟,就选出最大的数;经由第2轮比拟,就选出次大的数,以此类推。
下面以对 3 2 4 1 停止冒泡排序阐明。
第一轮 排序进程
3 2 4 1 (最后)
2 3 4 2 (比拟3和2,交流)
2 3 4 1 (比拟3和4,不交流)
2 3 1 4 (比拟4和1,交流)
第一轮完毕,最大的数4曾经在最初面,因而第二轮排序只需求对后面三个数停止再比拟。
第二轮 排序进程
2 3 1 4 (第一轮排序后果)
2 3 1 4 (比拟2和3,不交流)
2 1 3 4 (比拟3和1,交流
第二轮完毕,第二大的数曾经排在倒数第二个地位,所以第三轮只需求比拟前两个元素。
第三轮 排序进程
2 1 3 4 (第二轮排序后果)
1 2 3 4 (比拟2和1,交流)
至此,排序完毕。
算法总结及完成
关于具有N个元素的数组R[n],停止最多N-1轮比拟;
第一轮,逐一比拟(R[1], R[2]), (R[2], R[3]), (R[3], R[4]), ……. (R[N-1], R[N]) ; 最大的元素会被挪动到R[N]上。
第二轮,逐一比拟(R[1], R[2]), (R[2], R[3]), (R[3], R[4]), ……. (R[N-2], R[N-1]);第二大元素会被挪动到R[N-1]上。
。。。。
以此类推,直到全部数组从小到大排序。
下面给出了冒泡排序的普通完成和优化完成。普通完成是教科书里罕见的完成办法,无论数组能否排序好了,都邑停止N-1轮比拟; 而优化完成,在数组曾经排序好的状况下,会提早加入比拟,减小了算法的工夫复杂度。
纯文本复制
#include#include #define N 8 void bubble_sort(int a[],int n); //普通完成 void bubble_sort(int a[],int n)//n为数组a的元素个数 { //必定停止N-1轮比拟 for(int i=0; i a[j+1]) { int temp = a[j]; a[j] = a[j+1]; a[j+1]=temp; } } } } //优化完成 void bubble_sort_better(int a[],int n)//n为数组a的元素个数 { //最多停止N-1轮比拟 for(int i=0; i a[j+1]) { isSorted = false; int temp = a[j]; a[j] = a[j+1]; a[j+1]=temp; } } if(isSorted) break; //假如没有发作交流,阐明数组曾经排序好了 } } int main() { int num[N] = {89, 38, 11, 78, 96, 44, 19, 25}; bubble_sort(num, N); //或许运用bubble_sort_better(num, N); for(int i=0; i
排序
元素
数组
一轮
交流
二轮
普通
最大
个数
进程
算法
以此类推
三轮
两个
二大
只需
后果
根本
选出
类推
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
江山农商银行转账服务器异常
网吧里面的服务器是怎么更新的
网络安全之个人信息安全图片
剑侠手游数据库修改
厌余年手游服务器维护公告
数据库管理系统是软件开发
互联网未来科技城西乡
网络安全专题教育展
虚拟服务器是无形资产吗
云南网络安全保卫支队电话
网络技术服务中心实践
软件开发过程中的下游成果
北京商鲲互联网科技有限公司
公安机关网络技术管理
网络安全原理与实践陈伟
数据库服务器宕机排查报告
湖北网站网络安全事件
网络安全存在的风险以及对策
网络安全无小事的图片
网络安全证书免费下载
民营企业档案专题数据库
苍之骑士团2服务器排行
用饭店的无线网络安全吗
网络安全课微课
计算器软件开发考研
服务器管理器怎样添加角色
客户与服务器之间的通信
软件开发竞争性谈判会议纪要
斗牛软件开发平台
网络安全行业十大热门岗位