C++数据结构-冒泡排序及其优化
2018-12-05 09:55
148 查看
#include <iostream> #define N 12 using namespace std; /** *46,74,16,53,14,26,40,53,86,65,27,34从小到大排序 *冒泡排序 *冒泡排序的优化(用一个标记值flag) */ void swapNum(int &num1,int &num2) { int temp=num1; num1=num2; num2=temp; } void bubble_sort(int *nums) { for(int i=0;i<=N-1;i++) //N个元素排序,一共要冒泡N-1次 { int flag=0; //多了flag主要是起优化作用 for(int j=0;j<=N-i-1;j++) //每一次都是从头开始 { if(nums[j]>nums[j+1]) { swapNum(nums[j],nums[j+1]); //交换位置,这里传入的是引用,因为函数内部的操作要影响外部 flag=1; //当flag为1表示,这一轮有交换过 } } if(flag==0) //当flag为0表示,这一轮没有交换过,表示这已经是有序的,后面的操作是无用功 break; } } int main() { //初始化 int nums[N]={46,74,16,53,14,26,40,53,86,65,27,34}; bubble_sort(nums); //显示排序结果 for(int i=0;i<N;i++) { cout<<nums[i]<<endl; } return 0; }
相关文章推荐
- 数据结构 - 冒泡排序(Bubble Sort) 详解 及 代码(C++)
- c++(函数返回值的及其优化)
- c++ 数据结构 稀疏矩阵类的定义及其各种操作的实现
- 数据结构图文解析之:直接插入排序及其优化(二分插入排序)解析及C++实现
- 冒泡排序及其优化
- 【JAVA版】冒泡排序及其优化
- java版排序算法简介及冒泡排序以及优化,选择排序,直接插入排序,希尔排序,堆排序,快速排序及其优化前言 2 分类 2 稳定性 3 时间复杂度 4 Java实现版本 5 1、冒泡排序 6 2、选择排序
- 冒泡排序及其优化
- 冒泡排序及其优化
- 【C++】String类及其优化版的实现
- 冒泡排序及其优化
- 排序(1)——冒泡排序及其优化
- 经典算法与数据结构的c++实现——冒泡排序
- 冒泡排序的实现及其优化。
- 数据结构:冒泡排序及其改进、插入排序和希尔排序
- 【数据结构】二叉树的构建及其遍历(C++实现)
- 冒泡排序及其优化
- 冒泡排序基本代码及其优化
- 冒泡排序的实现及其优化。
- 冒泡排序及其优化