小甲鱼c语言入门冒泡,小甲鱼 排序算法 冒泡排序
小甲鱼 排序算法 冒泡排序
冒泡排序
基本思想:两两相邻记录的关键字,如果反序则交换,直到没有反序的记录为止
(PS 反序:大在前,小在后)
下面的代码不是真正意义的冒泡排序(因为比较的不是相邻)
//BubbleSort冒泡排序
#include void BubbleSort(int k[], int n)
{
int i, j, temp;
//为什么n-1,因为排序到最后一个,最后一个已经是最大的,不需要再排序
for (i = 0; i < n-1; i++)
{
//j=i+1:下一个元素
for (j = i+1; j < n; j++)
{
//从小到大排序
if (k[i] > k[j])
{
temp = k[j];
k[j] = k[i];
k[i] = temp;
}
}
}
}
int main(void)
{
int i, a[10] = {5, 2, 6, 0, 3, 9, 1, 7, 4, 8};
BubbleSort(a, 10);
printf("排序后的结果是:");
for (i = 0; i < 10; i++)
{
printf("%d", a[i]);
}
printf("\n\n");
return 0;
}
冒泡排序的要点
1、两两注意是相邻的两个元素的意思。
2、如果有n个元素需要比较n-1次,每一轮减少1次比较。
3、既然叫冒泡排序,那就是从下往上两两比较,所以看上去就跟泡泡往上冒一样。
真正意义的冒泡算法
数组从最后面进行比较,每一次排序确定最小的排在前面
//BubbleSort冒泡排序
#include void BubbleSort(int k[], int n)
{
int i, j, temp, count1=0, count2=0;
for (i = 0; i < n-1; i++)
{
//为什么是n-1?
//每一次循环后确定的元素不在参与比较
//第一次确定第一大,第二次确定第二大
for (j = n-1; j > i; j--)
{
count1++;
//从小到大排序
if (k[j-1] > k[j])
{
count2++;
temp = k[j-1];
k[j-1] = k[j];
k[j] = temp;
}
}
}
printf("总共进行了%d次比较,进行了%d次移动!\n", count1, count2);
}
int main(void)
{
int i, a[10] = {5, 2, 6, 0, 3, 9, 1, 7, 4, 8};
BubbleSort(a, 10);
printf("排序后的结果是:");
for (i = 0; i < 10; i++)
{
printf("%d", a[i]);
}
printf("\n\n");
return 0;
}
优化冒泡排序算法
//BubbleSort冒泡排序
#include void BubbleSort(int k[], int n)
{
int i, j, temp, count1=0, count2=0, flag;
flag = 1;
for (i = 0; i < n-1 && flag; i++)
{
//为什么是n-1?
//每一次循环后确定的元素不在参与比较
//第一次确定第一大,第二次确定第二大
for (j = n-1; j > i; j--)
{
count1++;
flag = 0;//没有执行移动
//从小到大排序
if (k[j-1] > k[j])
{
count2++;
temp = k[j-1];
k[j-1] = k[j];
k[j] = temp;
flag = 1;
}
}
}
printf("总共进行了%d次比较,进行了%d次移动!\n", count1, count2);
}
int main(void)
{
int i, a[10] = {5, 2, 6, 0, 3, 9, 1, 7, 4, 8};
BubbleSort(a, 10);
printf("排序后的结果是:");
for (i = 0; i < 10; i++)
{
printf("%d", a[i]);
}
printf("\n\n");
return 0;
}
小甲鱼c语言入门冒泡,小甲鱼 排序算法 冒泡排序相关推荐
- 微信小程序开发语言(微信小程序开发教程)详细步骤
微信小程序开发语言 开发微信小程序用什么语言 1.微信小程序开发所需要的语言比较特别,首先介绍一下需要使用到的文件类型大致分为:WXML(WeiXin Mark Language 微信标记语言).WX ...
- C语言中的几种排序算法
C语言中的几种排序算法 在编程练习时,我们经常会遇到一些将一串乱序的数字排列成有序的数列(递增,递减)的问题,以此起到解决问题的效果.目前我使用的比较熟练的有三种排序算法,冒泡排序法,快速排序法,另外 ...
- 我们一起来排序——使用Java语言优雅地实现常用排序算法
破阵子·春景 燕子来时新社,梨花落后清明. 池上碧苔三四点,叶底黄鹂一两声.日长飞絮轻. 巧笑同桌伙伴,上学径里逢迎. 疑怪昨宵春梦好,元是今朝Offer拿.笑从双脸生. 排序算法--最基础的算法,互 ...
- C语言基础排序算法-冒泡排序
C语言基础排序算法-冒泡排序 什么是冒泡排序? 顾名思义,这种排序方法就像水中的气泡一样,从底逐渐往上冒,一次前进一步.我们来看一个例子,看看到底是怎么冒泡的.假设有一个数组3,2,5,4,1,我们希 ...
- C/C++语言入门——冒泡排序问题
用C/C++语言实现冒泡排序 以下就解决此问题分为三步 1.识思想 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法. 它重复地走访过要排序的元素列,依次比较两个相邻的元素, ...
- c语言程序设计单元小测,C语言程序设计单元小测2.doc
C语言程序设计单元小测2 C语言程序设计单元小测2 考试形式 闭 卷 答题时间 60 分钟 考试性质 单元测试 一.选择题:(本大题共8小题,每小题5分,共40分) 1.能正确表示逻辑关系:" ...
- mpvue微信小程序动画_入门微信小程序
为何现在的微信小程序还是高温不退?主要原因如下:无需安装.不占内存.易传播. 废话不多说,开始进入开发! -----------小程序环境搭建----------------------------- ...
- 微信小程序零基础入门【小程序的下载、安装与首项目配置】
目录 第一步.注册小程序开发账号 第二步.下载并安装微信小程序 第三步.首次创建小程序 第一步.注册小程序开发账号 (1)点击注册按钮 微信公众平台 点击该链接进入微信公众号平台,点击右上角注册按钮, ...
- C语言——十四种内部排序算法【直接插入排序-冒泡排序-选择排序-插入排序-希尔排序-归并排序-快速排序-堆排序-折半插入排序-二分查找-路插入排序-表插入排序-简单选择排序-直接选择排序-树形选择】
目录: 一:插入排序 A:直接插入排序 1.定义: 2.算法演示 实例1: 3.基本思想 4.排序流程图 实例1: B:希尔排序 1.定义: 2.算法演示 实例2: C:其他插入排序 a:折半插入排序 ...
- c语言选择排序步骤,C语言中如何实现选择排序算法
选择排序法实现的步骤:首先找出一个最小数交换到最前面:然后在剩下的数中找个最小的交换到剩下数最前面:最后一直重复此步骤,直到所有数排好即可. 选择排序法实现的步骤:找出一个最小数交换到最前面,然后在剩 ...
最新文章
- edge chrome 浏览器 底色调黑 反色
- 一个简单自激振荡器电路分析
- 一文彻底搞懂快速幂(原理、实现、矩阵快速幂)
- Angular的built-in指令
- 【CSS3】CSS3文本相关属性大全
- sqlserver查询语法
- docker -v 文件夹下没有数据_微服务就是Dubbo?并没有那么简单!微服务架构+Docker+k8s了解下...
- linux内核编译串口驱动,ARM Linux下安装CH341串口驱动
- 腾讯手机管家(android2.3),腾讯手机管家3.4 Android发布_软件资讯软件快报-中关村在线...
- win10开机小键盘灯不亮
- Android Studio设置http proxy加速下载(亲测有效)
- CSS-Learning | 使用border-radius创建圆形和胶囊形状(长圆形)
- 基于滴滴云安装 Docker 并上传镜像到滴滴云 Docker 仓库
- 电脑右下角没有USB图标,不能退出
- 从endnote导出参考文献发现没有参考文献信息
- E03.02 Saudi Crown Prince Is Held Responsible for Khashoggi Killing in U.S. Report
- 20个时尚相机转场PR预设
- php eteams,应用安全 - 软件漏洞 - 泛微OA漏洞汇总
- 搜狗词库的批量下载#Python
- 停车场管理_充电桩_停车收费_物业管理_源码
热门文章
- 把svg图标制作成字体图标_SVG图标FTW
- 服务器wifi模块通讯协议,WiFi模块 TCP/IP协议栈
- 三菱Q系列常用注意事项
- 傅里叶热传导定律【Fourier's Law of Heat Conduction】
- 4.2 无线传感器网络传输层协议
- 网络社区划分的算法分类(2)
- 前后端分离的跨域请求问题解决
- 小程序内嵌的H5页面如何跳转到其他小程序?
- 微信 华为盒子 搜索不到服务器,【沙发管家教你一招】用手机微信控制华为荣耀盒子!...
- oracle字体库 生僻字,繁难字库生僻字大全-找字网_免费字体下载、字体在线商用授权、ttf字体分享、专业字体网站!...