第一种写法(前冒泡):

/*  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程序数组算法 — 冒泡法排序【前冒 || 后冒】的更多相关文章

  1. Java温故而知新-冒泡法排序

    冒泡法排序是各种初学者在学习数组与循环结构时都会练习的一种简单排序算法. 冒泡法的精髓在于比较相邻的两个元素,较大的元素会不断的排到队伍后面去,就像水里的泡泡一样不断向上跑. 想像一下倒在一个透明玻璃 ...

  2. 冒泡法排序_c++实现

    看完了郝斌老师的c语言视频,冒泡法排序,就试着写了.我觉得学习算法最重要的不是代码,而是它的原理. 代码: /** 2 * Copyright (c) 1991 - 2016 Arvin Tang. ...

  3. 【Java基础】选择排序、冒泡法排序、二分法查找

    1.选择排序: //改进后的选择排序,减少交换的次数 public static void sortSelect(int arr[]) { //用于存放最小数的下标 int s; for (int i ...

  4. C语言 · 冒泡法排序

    算法提高 冒泡法排序   时间限制:1.0s   内存限制:512.0MB      输入10个数,用“冒泡法”对10个数排序(由小到大)这10个数字在100以内. 样例输入 1 3 6 8 2 7 ...

  5. 8. 冒泡法排序和快速排序(基于openCV)

    一.前言 主要讲述冒泡法排序和快速排序的基本流程,并给出代码实现,亲测可用. 二.冒泡法排序 冒泡法排序主要是将相邻两个值比较,把小的向前冒泡,大的向后沉淀,时间复杂度为O(n2).主要思想如下: 分 ...

  6. Python 冒泡法排序

    def sequence(disorder='', separators=''): arrays = disorder.split(separators) def desc(): for i in r ...

  7. C#冒泡法排序源码

    如下内容内容是关于C#冒泡法排序的内容,应该对码农有一些用途. int[] myArray = new int[] { 10, 8, 3, 5, 6, 7, 4, 6, 9 }; for( int j ...

  8. [python,2018-01-15] 冒泡法排序

    想写一个冒泡法排序,没什么思路,就先写了个java的 public static void main(String[] args) { int array[] = {88,2,43,12,34,8,6 ...

  9. c#冒泡法排序

    1.通过冒泡法实现一个int数组的有小到大的排序 代码如下: //用for语句来实现排序功能,冒泡排序 static void Sort(int[] number) { ; i < number ...

随机推荐

  1. HTTPS原理解析

    HTTPS 一些概念 http 概述 HTTP是一个客户端(用户)和服务端(网站)之间请求和应答的标准,通常使用TCP协议.其本身位于TCP/IP协议族的应用层. 特点 - 客户端&服务器 - ...

  2. django学习-12.访问不同url/接口地址实现对指定数据的增删改查功能

    1.前言 通过前面博客[django学习-10.django连接mysql数据库和创建数据表]里的操作,我们已经成功在数据库[hongjingsheng_project]里创建了一张数据表[hello ...

  3. Java进阶专题(二十六) 数据库原理研究与优化

    前言 在一个大数据量的系统中,这些数据的存储.处理.搜索是一个非常棘手的问题. 比如存储问题:单台服务器的存储能力及数据处理能力都是有限的, 因此需要增加服务器, 搭建集群来存储海量数据. 读写性能问 ...

  4. HTML5中对于块级元素和行内元素的总结

    转自:https://www.cnblogs.com/iverson666/p/9169274.html块级元素:块级大多为结构性标记 <address>...</adderss&g ...

  5. 工作之余第二篇(看源码自己实现ArrayList和LinkList)

    先看源码: 首先看构造器,构造器有三种,一种直接给定初始长度的,如下代码 public ArrayList(int initialCapacity) { if (initialCapacity > ...

  6. windows server2012 搭建FTP服务器过程

    搭建过程链接地址:https://blog.csdn.net/smalllu161226/article/details/53887751 1.打开windows server2012R2 服务器管理 ...

  7. React高级

    1.React应用 1.1创建应用 创建项目可以使用react脚手架,创建步骤如下 1)安装react脚手架 npm i -g create-react-app 2)创建项目 create-react ...

  8. Docker 概述(一)

    1-1 虚拟化技术发展史 在虚拟化技术出现之前,如果我们想搭建一台服务器,我们需要做如下的工作: 购买一台硬件服务器:在硬件服务器上安装配置操作系统系统:在操作系统之上配置应用运行环境:部署并运行应用 ...

  9. vscode中js文件使用typescript语法报错,如何解决

    原因:由于vcode自身的语法检查有些问题 解决办法:在设置里面加上 "javascript.validate.enable": false 禁用默认的 js 验证 总结: 由于v ...

  10. 解决springboot项目打成jar包部署到linux服务器后上传图片无法访问的问题

    前言:目前大三,自己也在学习和摸索的阶段.在和学校的同学一起做前后端分离项目的时候,我们发现将后端打包成jar,然后部署到服务器中通过java -jar xxx.jar运行项目以后,项目中存在文件上传 ...