冒泡排序及C++实现
2016-05-10 21:55
267 查看
算法简介:
如果按照从小到大的顺序排列,比较相邻的元素,如果前面的数比后面的数大,则交换两个数的位置,这样选出一个最大的数字放在最后。针对前面的数字,再一次按同样的方式比较相邻的元素,如法炮制就会选出一个次大数字放在倒数第二位置。如此循环,直至排序完毕;
这种方式类似于体育课排高低个,先选出最高的放在一头,再选出次高的挨着最高的,以此类推,直至选出最矮的放在另一头,排序结束。
时间复杂度:O(n2)
C++实现代码如下:
如果按照从小到大的顺序排列,比较相邻的元素,如果前面的数比后面的数大,则交换两个数的位置,这样选出一个最大的数字放在最后。针对前面的数字,再一次按同样的方式比较相邻的元素,如法炮制就会选出一个次大数字放在倒数第二位置。如此循环,直至排序完毕;
这种方式类似于体育课排高低个,先选出最高的放在一头,再选出次高的挨着最高的,以此类推,直至选出最矮的放在另一头,排序结束。
时间复杂度:O(n2)
C++实现代码如下:
#include <iostream> #define SIZE 10 using namespace std; void bubble_sort(int a[], int n); void bubble_sort(int a[], int n) { int i, j, temp; for (j = 0; j < n - 1; j++) for (i = 0; i < n - 1 - j; i++) { if(a[i] > a[i + 1]) { temp = a[i]; a[i] = a[i + 1]; a[i + 1] = temp; } } } int main() { int number[SIZE] = {28,13,66, 45, 15, 78, 84, 51, 24, 12}; int i; bubble_sort(number, SIZE); for (i = 0; i < SIZE; i++) { cout<<number[i]<<endl; } }
相关文章推荐
- C++ 用getline输入字符串(小程序)
- C++实现一个简单的红黑树(RB_TREE)
- C++ 走向远洋——44(项目一、点—圆—圆柱类族的设计、派生类)
- C++ 使用联合体保存成绩并输出
- c++作业五
- C++ 游泳池造价
- C/C++——跟我重写智能指针auto_ptr模版类
- C++函数
- c++第五次上机实验--项目一、项目五
- C++四种强制类型转换关键字
- C++作业5
- C++第五次上机实验--数组分离
- c++实验5,求和
- C/C++程序运行时进程的内存分布情况
- 学生宿舍管理系统 150809205
- C语言课程设计第三节课:指针和链表使用 150809205
- Effective C++----3rd Edition, Item 2:用consts,enums和inlines取代#define
- C语言 O(1)的时间删除链表节点
- C++实现数组中出现最频繁的前top k个元素
- C语言 整数的整数次方(不考虑大数问题)