排序(3)---------冒泡排序(C语言实现)
来源:互联网 发布:点对点网络测速工具 编辑:程序博客网 时间:2024/05/02 04:46
说到冒泡排序,大一的时候第一次学习这个排序算法,可能大家不知道,“冒泡”在我说的方言里面是吹牛逼的意思。所以就觉得这个排序算法特吹牛逼有木有。
相信大家对所有的排序算法,这个想必是最熟悉的。大学老师多次强调,去培训,讲师也会提到,这个在面试经常被问到,所以我建议大家最好把这个算法背下来,做到心中有冒泡,手上写出来 哈哈。
好了,言归正传。
什么是冒泡排序,所谓冒泡,比如有一天你神经病发作突然跑到河边,扔了一块石头进去。假设这里河底产生了一个气泡,它会一直往上窜啊窜,知道露出水面,见天日。没错,这就是冒泡排序的核心步骤。
冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
源代码:
#include "stdafx.h"#include <stdlib.h>void Bubble_Sort(){int arr[10];for ( int i=0; i<10; i++) //初始化数据{arr[i] = rand()%520; //随机生成数据}printf("Before sort:\n"); //打印排序前的数据for (int i = 0; i < 10; i++){printf("%d ",arr[i]);}//开始排序for (int i = 0; i < 10-1; i++) //只需要比较length-1次,比如3个数相比 只需要比较2次//网上很多代码都是i<length 其实多余了{for (int j = 0; j < 10-i-1; j++) //每次都能找到最小的数,因此可以将其排除,条件即变为:j<length-i-1{if (arr[j] > arr[j+1]) //交换{int temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}printf("\nAfter sort:\n"); //打印排序后的数据for (int i = 0; i < 10; i++){printf("%d ",arr[i]);}}int _tmain(int argc, _TCHAR* argv[]){Bubble_Sort();printf("\n");system("pause");return 0;}
运行结果:
Before sort:41 267 94 500 449 124 38 238 442 24After sort:24 38 41 94 124 238 267 442 449 500请按任意键继续. . .
如有错误,望不吝指出。
1 0
- 排序(3)---------冒泡排序(C语言实现)
- C语言实现冒泡排序
- 冒泡排序C语言实现
- 冒泡排序C语言实现
- 实现冒泡排序(c语言)
- 冒泡排序--C语言实现
- 冒泡排序--c语言实现
- 冒泡排序(C语言实现)
- 冒泡排序C语言实现
- c语言实现冒泡排序
- c语言实现冒泡排序
- C语言实现冒泡排序
- C语言实现冒泡排序
- C语言实现冒泡排序
- c语言实现冒泡排序
- 冒泡排序C语言实现
- 冒泡排序 C语言实现
- c语言实现冒泡排序
- C++读写文件总结
- 初始设计模式8——装饰模式
- uboot移植与源码分析总结(4)-以太网驱动
- C++ Primer(十五) 面向对象编程
- 黑马程序员——网络编程
- 排序(3)---------冒泡排序(C语言实现)
- javascript编程 回调---jquery和YUI的简洁之道
- java的三种写文件方法的效率性能比较
- iOS7下隐藏status bar
- top命令
- SwiftyJSON库的使用和思考
- 小说mvvm
- Android应用之——xml文件里面出现unbound prefix错误的解决方法
- 【iOS知识学习】_int、NSInteger、NSUInteger、NSNumber的区别和联系