冒泡排序及改进(C++版)
来源:互联网 发布:工作任务管理系统源码 编辑:程序博客网 时间:2024/05/21 23:53
冒泡排序:相邻两个数比较,根据大小交换位置
C++代码:
/*** name:冒泡排序* time:15/8/12 15:00* environment: ubuntu 14.04, sublime text 3*/#include <iostream>#include <algorithm>using namespace std;/** 打印数组*/void printArray(int array[],int length){for (int i = 0; i < length; ++i){cout << array[i] << " ";}cout << endl;}/** 常规冒泡排序*/void bubbleSort(int array[],int length){for (int i = 0; i < length; ++i){for (int j = 0; j < length-1-i; ++j){if(array[j] > array[j+1]){swap(array[j],array[j+1]); //交换位置}}}printArray(array,10);}/** 改进冒泡排序* 设置哨兵*/void bubbleSort_sentry(int array[],int length){bool temp;for (int i = 0; i < length; ++i){temp = false;for (int j = 0; j < length-1-i; ++j){if(array[j] > array[j+1]){swap(array[j],array[j+1]); //交换位置temp = true;}}if (!temp) { cout << i << endl; break; }}printArray(array,10);}/** 改进冒泡排序* 双向冒泡*/void bubbleSort_two_way(int array[],int length){int small = 0;int big = length-1;while(small < big){for (int i = 0; i < small; ++i) //正向冒泡{if(array[i] > array[i+1]){swap(array[i],array[i+1]); //交换位置}}small++;for (int i = big; i > small; i--) //反向冒泡{if(array[i-1] > array[i]){swap(array[i],array[i-1]); //交换位置}}big--;}}int main(){int array[10] = {0,8,4,1,3,2,5,7,6,9};bubbleSort(array,10);int array2[10] = {0,8,4,1,3,2,5,7,6,9};bubbleSort_sentry(array2,10);int array3[10] = {0,8,4,1,3,2,5,7,6,9};bubbleSort_two_way(array3,10);printArray(array3,10);return 0;}//结果://0 1 2 3 4 5 6 7 8 9 //3//0 1 2 3 4 5 6 7 8 9 //0 1 2 3 4 8 5 6 7 9
0 0
- 冒泡排序及改进(C++版)
- 冒泡排序及改进版
- 冒泡排序再学习改进冒泡排序(c++)
- Java 冒泡排序及改进
- 冒泡排序改进版
- 改进版冒泡排序
- 冒泡排序改进版
- 冒泡排序改进版
- 排序算法(一)——冒泡排序及改进
- 数据结构之排序算法(二)-冒泡排序及改进
- 排序算法(一)——冒泡排序及改进
- 排序算法(一)——冒泡排序及改进
- 冒泡排序以及改进版冒泡排序
- 排序算法1-冒泡排序及改进
- 改进版的冒泡排序(双向冒泡算法)
- 冒泡算法及改进(属于交换排序)
- 改进的冒泡排序算法实现 (C#)
- 数据结构——改进的冒泡排序(c++)
- C语言中的#define用法总结
- Codeforces 569 B. Inventory
- 开启定位服务
- WebSphere MQ7.5教程——教程 1:将消息发送至本地队列
- android 客户端与服务器端之间采用JSON进行数据通信之一
- 冒泡排序及改进(C++版)
- java void 和 Void 大写的 V 和 小写的v
- linux 网络配置 修改DNS 重启被覆盖
- STM8L EEPROM操作读与写
- 侧滑删除进阶(六)
- QueryRuner类的使用
- 解决移动端页面滚动后不触发touchend事件
- hdu1166 敌兵布阵(线段树 求区间和 更新点)
- SSM整合