C语言之冒泡排序
冒泡排序:
1). 简介
其实就是把一个数组的元素,按照从小到大(从大到小)得顺序,重新排列起来,这种排序就叫冒泡排序
例: int nums[5] = {5,4,3,2,1};
//经过排序后
下标0的元素变成了1
下标1的元素变成了2
下标2的元素变成了3
下标3的元素变成了4
下标4的元素变成了9
2). 核心思想
有N轮,每轮从第一个元素开始跟下一个元素进行比较,大的放在后面,小的放在前面
下标: 0 1 2 3 4
5 4 3 2 1
第一轮: 4 5 3 2 1 nums[0] > nums[0+1]; //交换俩个下标种的元素
4 3 5 2 1 nums[1] > nums[1+1]
4 3 2 5 1 nums[2] > nums[2+1]
4 3 2 1 5 nums[3] > nums[3+1]
这一轮比较了4次
第二轮 3 4 2 1 5 nums[0] > nums[0+1];
3 2 4 1 5 nums[1] > nums[1+1]
3 2 1 4 5 nums[2] > nums[2+1];
这一轮比较了3次
第三轮 2 3 1 4 5 nums[0] > nums[0+1];
2 1 3 4 5 nums[1] > nums[1+1];
这一轮比较了2次
第四轮 1 2 3 4 5 nums[0] > nums[0+1];
这一轮比较了1次
C语言之冒泡排序的更多相关文章
- C语言实现冒泡排序-整数排序
我一直觉得排序算法挺重要的,但是却没有深入的去理解它: 没有深入理解就无法用代码将它实现: 在腾讯的在线模拟考试中就有一题问到冒泡排序: 我几乎是傻眼了!我知道这样的问题是最基础的: 无论过去怎样现在 ...
- C语言实现冒泡排序法和选择排序法代码参考
为了易用,我编写排序函数,这和直接在主调函数中用是差不多的. 我认为选择排序法更好理解!请注意 i 和 j ,在写代码时别弄错了,不然很难找到错误! 冒泡排序法 void sort(int * ar, ...
- 排序算法c语言描述---冒泡排序
排序算法系列学习,主要描述冒泡排序,选择排序,直接插入排序,希尔排序,堆排序,归并排序,快速排序等排序进行分析. 文章规划: 一.通过自己对排序算法本身的理解,对每个方法写个小测试程序. 具体思路分析 ...
- C语言之冒泡排序、选择排序、折半查询、进制查表
菜单导航 1.冒泡排序 2.选择排序 3.折半查询 4.进制查表(十进制转二进制.八进制.十六进制) 一.冒泡排序 //1.冒泡排序 /** 一组无序数字,进行从小到大排序 冒泡排序的过程:就是每个循 ...
- C语言实现冒泡排序算法
新人新气象,又一个学习C的新人来了. 冒泡排序,基础中的基础,原理不啰嗦了. 代码中display()为数组展示函数,sort_bubble()为直接实现排序,details()为带动画展示. #in ...
- C语言数组排序——冒泡排序、选择排序、插入排序
一.冒泡排序 原理解析:(以从小到大排序为例)在一排数字中,将第一个与第二个比较大小,如果后面的数比前面的小,则交换他们的位置. 然后比较第二.第三个……直到比较第n-1个和第n个,此时,每一次比较都 ...
- C语言:“冒泡排序”与“二分法”
1.冒泡排序: what:将元素进行两两比较,大的(小的)向后排. when:数组中有多个元素,需要进行比较排序比较的时候使用. how:N个数字来排队,两两比较小靠前.(升序) 外层循环:N-1(控 ...
- C语言实现 冒泡排序 选择排序 希尔排序
// 冒泡排序 // 选择排序 // 希尔排序 // 快速排序 // 递归排序 // 堆排序 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h& ...
- Go语言之冒泡排序
package main //main函数 import "fmt" //相当于#include func main() { ar := [], , , , , , , , , } ...
随机推荐
- SQL点滴11—重置win7登录密码影响SQL登录
原文:SQL点滴11-重置win7登录密码影响SQL登录 2011-04-20 修改机器登录密码后不能登录SQL Server 今天发现一个很有趣的现象.公司的电脑每两个月就会提示重置登录密码,今天 ...
- [译]Java 垃圾回收介绍
说明:这篇文章来翻译来自于Javapapers 的Java Garbage Collection Introduction 在Java中,对象内存空间的分配与回收是由JVM中的垃圾回收进程自动完成的. ...
- ReSharper 8.1支持Visual Studio 2013的特色——超强滚动条
自ReSharper 8.1发布以来,便支持Visual Studio 2013.其中peek功能是它的亮点,滚动条则是它的特色. 接下来小编将展示ReSharper在Visual Studio 20 ...
- 【Web.xml配置具体解释之context-param
】
转自:http://blog.csdn.net/liaoxiaohua1981/article/details/6759206 格式定义: [html] view plaincopy <cont ...
- solr的配置文件及其含义
solr与.net系列课程(二)solr的配置文件及其含义 solr与.net系列课程(二)solr的配置文件及其含义 本节内容还是不会涉及到.net与数据库的内容,但是不要着急,这都是学时s ...
- 《互联网初创企业password》书评
今天试用了一下<互联网初创企业password>这本书.我觉得这本书开始的很真实,从学校刚毕业那会儿.它是生命,他们的牛b时间,一直想做点什么来证明自己.具体地,并且现在是在最好的时候.互 ...
- Oracle Database Instant Client 11g 32位和64位 安装包发布
Oracle Database Instant Client 11g 32位和64 Oracle Database Instant Client 11g 11.2.0.3.0 Instant Clie ...
- bootstrap弹出框
要想使用Bootstrap Popover(弹出框)则必须引入其依赖的文件: jquery.js这个必须的(还是要写在其他js前面,bootstrap是依赖jquery的哦) bootstrap-to ...
- 写JQuery 插件
什么?你还不会写JQuery 插件 前言 如今做web开发,jquery 几乎是必不可少的,就连vs神器在2010版本开始将Jquery 及ui 内置web项目里了.至于使用jquery好处这里就不再 ...
- linux 之 getopt_long()
文件 #include <getopt.h> 函数原型 int getopt_long(int argc, char * const argv[], const char *optstri ...