冒泡排序法:

所谓冒泡排序法,就是对一组数字进行从大到小或者从小到大排序的一种算法。具体方法是,相邻数值两两交换。从第一个数值开始,如果相邻两个数的排列顺序与我们的期望不同,则将两个数的位置进行交换(对调);如果其与我们的期望一致,则不用交换。重复这样的过程,一直到最后没有数值需要交换,则排序完成。一般地,如果有N个数需要排序,则需要进行(N-1)趟起泡。

步骤分析:

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
假如有9个数的一组数:6,8,1,2,4,3,5,9,7
从第一个数起,依次和相邻两个数比较,前大后小则换位
第一轮:比较9-1次
6和8进行比较,6<8,则不换位,得到  6,8,1,2,4,3,5,9,7
8和1进行比较,8>1,则换位,得到    6,1,8,2,4,3,5,9,7
8和2进行比较,8>2,则换位,得到    6,1,2,8,4,3,5,9,7
8和4进行比较,8>4,则换位,得到    6,1,2,4,8,3,5,9,7
8和3进行比较,8>3,则换位,得到    6,1,2,4,3,8,5,9,7
8和5进行比较,8>5,则换位,得到    6,1,2,4,3,5,8,9,7
8和9进行比较,8<9,则不换位,得到  6,1,2,4,3,5,8,9,7
9和7进行比较,9>7,则换位,得到    6,1,2,4,3,5,8,7,9
第二轮:比较9-1-1次
6和1进行比较,6>1,则换位,得到    1,6,2,4,3,5,8,7,9
6和2进行比较,6>2,则换位,得到    1,2,6,4,3,5,8,7,9
6和4进行比较,6>4,则换位,得到    1,2,4,6,3,5,8,7,9
6和3进行比较,6>3,则换位,得到    1,2,4,3,6,5,8,7,9
6和5进行比较,6>5,则换位,得到    1,2,4,3,5,6,8,7,9
6和8进行比较,6<8,则不换位,得到  1,2,4,3,5,6,8,7,9
8和7进行比较,8>7,则换位,得到    1,2,4,3,5,6,7,8,9
第三轮:...后面我就不写,一共比较9-1轮.也就是有多少个元素,则比较多少个元素个数-1次.

代码实现:

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
 
//冒泡排序法
voidbubbleSort(intarr[],intlen){
    for(inti=0;i<len-1;i++){
        for(intj=0;j<len-1-i;j++){
            //相邻两个元素进行比较,如果前面元素比后面元素大则交换位置
            if(arr[j]>arr[j+1]){
                arr[j]=arr[j]^arr[j+1];
                arr[j+1]=arr[j]^arr[j+1];
                arr[j]=arr[j]^arr[j+1];
            }
        }
    }
    //打印排序后的数组
    for(inti=0;i<len;i++){
        printf("%d ",arr[i]);
    }
}
 
intmain(intargc,constchar*argv[]){
    //定义一个元素个数为10的数组,并赋值
    intnum[9]={6,8,1,2,4,3,5,9,7};
    
    //调用函数,传入数组和元素个数
    bubbleSort(num,9);
    
    printf("\n");
    return0;
}

C语言冒泡排序法分析及代码实现的更多相关文章

  1. Python 冒泡排序法分析

    冒泡排序法 def maopao(): array = [2,1,3,6,5,4] #确定一组需要排序的数值列表 for i in range(len(array)-1): #大循环次数=列表长度,但 ...

  2. 利用C语言将混乱数字排序(即冒泡排序法)(含思路)

    大一C语言 你没学过吗 这篇可以称的上入门级别的c语言了 当然还有水仙花数,冒泡排序等经典的C语言程序 后面也会逐一更新 尽情期待喔~~~ 冒泡排序法的基本思路为:每次将相邻的两个数比较,将小的调在前 ...

  3. C语言 数组输出,冒泡排序法,沉底排序法,二维数组输出,输出字母列长度,从随机数组中找重复数

    #include <stdio.h> #define sum 3+4//宏定义是原封不动的使用used for test4 #include <time.h>//used fo ...

  4. c语言:简单排序:冒泡排序法、选择排序法、插入排序法(待写)

    1.冒泡排序法: 假设有n个数需要按从小到大排序,冒泡排序的原理是,在这一排数字中,将第一个数与第二个数比较大小,如果后面的比前面的小,就将他们交换位置.然后再比较第二个和第三个,再交换,直到第n-1 ...

  5. 冒泡排序法(C语言)

    冒泡排序(Bubble Sort)一种计算机科学领域的较简单的排序算法.它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小.首字母从从Z到A)错误就把他们交换过来.走访元素的工 ...

  6. php 四种基础的算法 ---- 冒泡排序法

    1. 冒泡排序法  *     思路分析:法如其名,就是像冒泡一样,每次从数组当中 冒一个最大的数出来.  *     比如:2,4,1    // 第一次 冒出的泡是4  *             ...

  7. 选择排序法、冒泡排序法、插入排序法、系统提供的底层sort方法排序之毫秒级比较

    我的代码: package PlaneGame;/** * 选择排序法.冒泡排序法.插入排序法.系统提供的底层sort方法排序之毫秒级比较 * @author Administrator */impo ...

  8. C++学习四 冒泡排序法的一些改进

    冒泡排序法需要两次扫描,所以从时间复杂度来说,是O(n2). 如果用图形表示,是这样的: 但是我们可以加以改进. 首先是,如果在排序中间,整个向量已经达到了有序状态,可以直接跳出来. 这样它的复杂度由 ...

  9. python排序之二冒泡排序法

    python排序之二冒泡排序法 如果你理解之前的插入排序法那冒泡排序法就很容易理解,冒泡排序是两个两个以向后位移的方式比较大小在互换的过程好了不多了先上代码吧如下: 首先还是一个无序列表lis,老规矩 ...

随机推荐

  1. 【盘它!】那些让效率MAX的工具和方法(Mac篇)

    一.前言 人类之所以伟大,是因为会创造并使用工具! 工欲善其事必先利器.高效的工具和方法不仅能最大化 节省我们的时间,还可以一定程度上让我们 保持专注,以达到 事半功倍 的效果. 但仅仅有工具不会使用 ...

  2. 环境篇:Docker

    环境篇:Docker www.docker.com Docker 是什么? Docker 是一个开源的应用容器引擎,基于Go语言并遵从Apache协议的开源,让开发者可以打包他们的应用以及依赖包到一个 ...

  3. Linux下Tomcat优化

    /etc/profileexport JAVA_OPTS="-server -showversion -Xms2048m -Xmx2048m -XX:PermSize=256m -XX:Ma ...

  4. 《数据库优化》- MySQL视图

    一.什么是视图 视图,是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改,视图基于的表称为基表.视图是存储在数据字典里的一条select语句. 通俗地讲,视图就 ...

  5. 图论-BFS-最小高度的树 Minimum Height Trees

    2018-09-24 12:01:38 问题描述: 对于一个具有树特征的无向图,我们可选择任何一个节点作为根.图因此可以成为树,在所有可能的树中,具有最小高度的树被称为最小高度树.给出这样的一个图,写 ...

  6. [ASP.NET Core 3.1]浏览器嗅探解决部分浏览器丢失Cookie问题

    今天的干货长驱直入,直奔主题 看了前文的同学们应该都知道,搜狗.360等浏览器在单点登录中反复重定向,最终失败报错. 原因在于,非Chrome80+浏览器不识别Cookie上的SameSite=non ...

  7. php解析配置文件

    php解析配置文件 标签(空格分隔): php .ini格式 ![](https://img2020.cnblogs.com/blog/1458583/202003/1458583-202003301 ...

  8. 强化学习之七:Visualizing an Agent’s Thoughts and Actions

    本文是对Arthur Juliani在Medium平台发布的强化学习系列教程的个人中文翻译,该翻译是基于个人分享知识的目的进行的,欢迎交流!(This article is my personal t ...

  9. pywin32解析office文档

    from win32com.client import Dispatch xlApp = Dispatch("Excel.Application") xlApp.Visible = ...

  10. Linux/CentOS7搭建Anaconda运行环境

    1. 安装miniconda 下载并安装miniconda到$HOME/.miniconda/ #从官网下载 wget -c "https://repo.anaconda.com/minic ...