C程序数组算法 — 冒泡法排序【前冒 || 后冒】
第一种写法(前冒泡):
/* C程序数组算法 — 冒泡法排序
* 此例子按照 大 -> 小 排序
* 原理:两两相比较,然后进行大小对调
* 比较次数: n^2 次
* 说明:冒泡排序是相对稳定的排序算法,当待排序的列有序时,效果最好!
* 时间:2020年7月12日 21:59:22
*/
#include<stdio.h>
int main()
{
int a[10] = {1,3,5,7,9,2,4,6,8,10};
int i,j,temp; // i和j表示下标的 temp 交换时存放临时的值
for(i = 0;i<9;i++) //外层循环 比较n-1次
{
for(j = 0;j<9-i;j++) //内层循环 比较n-1-i次 【i指的是排好了的】
{
if(a[j] < a[j+1]) //前一个元素和后一个元素对比
{
temp = a[j]; //开始交换前后元素
a[j] = a[j+1];
a[j+1] = temp; //交换结束
}
}
} for(i = 0;i<10;i++)//交换好了--- 打印
{
printf("%d\n",a[i]);
} return 0;
}
第二种写法(后冒泡):
/* C程序数组算法 — 冒泡法排序
* 此例子按照 大 -> 小 排序
* 原理:两两相比较,然后进行大小对调
* 比较次数: n^2 次
* 说明:冒泡排序是相对稳定的排序算法,当待排序的列有序时,效果最好!
* 时间:2020年7月12日 21:59:22
*/
#include<stdio.h>
int main()
{
int a[10] = {1,3,5,7,9,2,4,6,8,10};
int i,j,temp; // i和j表示下标的 temp 交换时存放临时的值
for(i = 0;i<9;i++) //外层循环 比较n-1次
{
for(j = 9;j>i;j--) //内层循环 说白了就是要比较n-i-1次,这里的j = n-1(9),j<i ,此时的i是会递减1 的 就相等"n-i-1"中的 "-i",那么"n-i-1"中的 "-1" 就是j了。
{
if(a[j] > a[j-1]) //后一个元素和前一个元素对比
{
temp = a[j-1]; //开始交换前后元素
a[j-1] = a[j];
a[j] = temp; //交换结束
}
}
} for(i = 0;i<10;i++)//交换好了--- 打印
{
printf("%d\n",a[i]);
} return 0;
}
总结前冒和后冒的公式:
前冒:for(i = 0;i < n-1;i++)
{
for(j = 0;j<n-1-i;j++)
{
...交换语句...
}
}
后冒:for(i = 0;i < n-1;i++)
{
for(j = n - 1;j > i;j--)
{
...交换语句...
}
}
希望能帮到大家......../(ㄒoㄒ)/
C程序数组算法 — 冒泡法排序【前冒 || 后冒】的更多相关文章
- Java温故而知新-冒泡法排序
冒泡法排序是各种初学者在学习数组与循环结构时都会练习的一种简单排序算法. 冒泡法的精髓在于比较相邻的两个元素,较大的元素会不断的排到队伍后面去,就像水里的泡泡一样不断向上跑. 想像一下倒在一个透明玻璃 ...
- 冒泡法排序_c++实现
看完了郝斌老师的c语言视频,冒泡法排序,就试着写了.我觉得学习算法最重要的不是代码,而是它的原理. 代码: /** 2 * Copyright (c) 1991 - 2016 Arvin Tang. ...
- 【Java基础】选择排序、冒泡法排序、二分法查找
1.选择排序: //改进后的选择排序,减少交换的次数 public static void sortSelect(int arr[]) { //用于存放最小数的下标 int s; for (int i ...
- C语言 · 冒泡法排序
算法提高 冒泡法排序 时间限制:1.0s 内存限制:512.0MB 输入10个数,用“冒泡法”对10个数排序(由小到大)这10个数字在100以内. 样例输入 1 3 6 8 2 7 ...
- 8. 冒泡法排序和快速排序(基于openCV)
一.前言 主要讲述冒泡法排序和快速排序的基本流程,并给出代码实现,亲测可用. 二.冒泡法排序 冒泡法排序主要是将相邻两个值比较,把小的向前冒泡,大的向后沉淀,时间复杂度为O(n2).主要思想如下: 分 ...
- Python 冒泡法排序
def sequence(disorder='', separators=''): arrays = disorder.split(separators) def desc(): for i in r ...
- C#冒泡法排序源码
如下内容内容是关于C#冒泡法排序的内容,应该对码农有一些用途. int[] myArray = new int[] { 10, 8, 3, 5, 6, 7, 4, 6, 9 }; for( int j ...
- [python,2018-01-15] 冒泡法排序
想写一个冒泡法排序,没什么思路,就先写了个java的 public static void main(String[] args) { int array[] = {88,2,43,12,34,8,6 ...
- c#冒泡法排序
1.通过冒泡法实现一个int数组的有小到大的排序 代码如下: //用for语句来实现排序功能,冒泡排序 static void Sort(int[] number) { ; i < number ...
随机推荐
- 什么是NGK节点?NGK的节点有什么作用?
从2018年EOS竞选超级节点火爆整个区块链圈,节点和超级节点就成为了热议的话题,时至今日,热度依然不减.节点是项目生态发展的重要组成部分,超级节点对项目的运行.安全更是起着至关重要的作用. 什么 ...
- Baccarat流动性挖矿的收益能否持续?该如何参与Baccarat流动性挖矿?
2020年DeFi市场火热,众多投资机构纷纷入场,分享这场资本盛宴.然而,目前市面上大多数DeFi项目手续费高昂,小资金的投资者无法入市.为了让更多的用户参与其中,NGK推出了Baccarat流动性挖 ...
- 使用 mask 实现视频弹幕人物遮罩过滤
经常看一些 LOL 比赛直播的小伙伴,肯定都知道,在一些弹幕网站(Bilibili.虎牙)中,当人物与弹幕出现在一起的时候,弹幕会"巧妙"的躲到人物的下面,看着非常的智能. 简单的 ...
- CSS前端性能优化
1.Google 资深web开发工程师Steve Souders对CSS选择器的效率从高到低做了一个排序: 1. id选择器(#myid) 2. 类选择器(.myclassname) 3. 标签选择器 ...
- 02.描述统计 (descriptive statistics)
1.数据的可靠性和有效性 2.利用图表对数据进行可视化 2.1分类变量的可视化 2.11无序分类变量 2.12有序分类变量的可视化 2.1数值变量的可视化 数据的分布
- [Python学习笔记]文件的读取写入
文件与文件路径 路径合成 os.path.join() 在Windows上,路径中以倒斜杠作为文件夹之间的分隔符,Linux或OS X中则是正斜杠.如果想要程序正确运行于所有操作系统上,就必须要处理这 ...
- 资源授权?对OAuth2.0的一次重新认识的过程
什么是OAuth? OAuth一个开放的授权标准,允许用户在不提供关键信息(如账号,密码)给第三方应用的前提下,让第三方应用去访问用户在某网站上的资源(如头像,用户昵称等). OAuth分为OAuth ...
- 解决QQ能正常上网但是网页无法打开的办法
最近网页老师稀里糊涂的打不开,在这里附上参考的行之有效的办法. https://baijiahao.baidu.com/s?id=1645363213803553998&wfr=spider& ...
- Go的结构体
目录 结构体 一.什么是结构体? 二.结构体的声明 三.创建结构体 1.创建有名结构体 2.结构体初始化 2.1 按位置传参 2.2 按关键字传 3.创建匿名结构体 四.结构体的类型 五.结构体的默认 ...
- Hi3559AV100-自己编译了u-boot、kernel及rootfs后,出现烧写错误或者烧写后板载无法启动的解决思路
这篇随笔主要给出了Hi3559AV100-自己编译了u-boot.kernel及rootfs后,出现烧写错误或者烧写后板载无法启动的解决思路. 问题 (1)对于 u-boot 为官方的,kernel ...