双向起泡排序实现如下:

#include<iostream>
using namespace std;// 交换两个数
void swap(int &i, int &j)
{int t = i;i = j;j = t;
}// 打印数组
void show(int a[], int n)
{for(int i = 0; i < n; i++){cout << a[i] << " ";}cout << endl;
}// 双向起泡排序
void bubblesort(int a[], int n)
{int low = 0, high = n-1;bool flag = true;while(low < high && flag){   flag = false;show(a, 10);int i = low;while(i < high){if(a[i] > a[i + 1]){swap(a[i], a[i + 1]);flag = true;}i++;}high--;int j = high;while(j > low){if(a[j] < a[j-1]){swap(a[j-1], a[j]);flag = true;}j--;}low++;}
}int main(){int a[] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1};int n = 10;// 输出初始状态// show(a, n);// 双向冒泡排序bubblesort(a, n);// 排序后输出cout << "after sort" << endl;show(a, n);}

代码中示例的输出为:

10 9 8 7 6 5 4 3 2 1
1 9 8 7 6 5 4 3 2 10
1 2 8 7 6 5 4 3 9 10
1 2 3 7 6 5 4 8 9 10
1 2 3 4 6 5 7 8 9 10
after sort
1 2 3 4 5 6 7 8 9 10

C++双向起泡排序算法的实现相关推荐

  1. 十一大排序算法的实现

    十一大排序算法的实现 前言 终于写完了,九大排序算法亲自打一遍,给自己加深印象,算是一种模板,留给自己以后用,也分享给大家. U p d a t e : Update: Update: 2020.12 ...

  2. 数组的几种排序算法的实现(1)

    数据结构中的排序算法,各有用处,比如: 1,直接插入排序,在序列基本有序的情况下,移动的次数比较少,但是比较次数是一样的 复杂度O(n*n); 2,冒泡排序,这个不用说了吧,刚学C的人都懂了 3,希尔 ...

  3. 数据结构实验四 排序算法的实现

    广州大学学生实验报告 开课实验室:计算机科学与工程实验(电子楼416)     2019年6月4日 学院 计算机科学与教育软件学院 年级.专业.班 姓名 学号 实验课程名称 数据结构实验 成绩 实验项 ...

  4. 【swjtu】数据结构实验9_多种排序算法的实现

    实验内容及要求: 输入n个整数,分别用希尔排序.快速排序.堆排序和归并排序实现由小到大排序并输出排序结果.要求n=10,15,20进行三组排序实验. 实验目的: 掌握希尔排序.快速排序.堆排序.归并排 ...

  5. Java基础学习总结(28)——Java对各种排序算法的实现

    2019独角兽企业重金招聘Python工程师标准>>> 这里总结下各种排序算法的java实现 冒泡排序 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 ...

  6. 排序算法的实现(C/C++实现)

    存档: 1 #include <iostream> 2 #include <stdlib.h> 3 #include <sort.h> 4 #define maxs ...

  7. C++——《数据结构与算法》实验——排序算法的实现

    问题描述 1) 动态输入一组数字序列; 2)实现直接插入排序.简单选择排序.冒泡排序.快速排序算法; 3)在主函数中,依次测试上述算法. 类型定义 #define MAX SIZE 100 typed ...

  8. Python之十大经典排序算法的实现和原理

    一.冒泡排序 冒泡排序(Bubble Sort)是一种比较简单的排序算法,它重复地走访过要排序的元素,依次比较相邻两个元素,如果它们的顺序错误就把它们调换过来,直到没有元素再需要交换,排序完成. 冒泡 ...

  9. java 排序算法面试题_面试题: java中常见的排序算法的实现及比较

    1.冒泡排序 1.1 冒泡排序普通版 每次冒泡过程都是从数列的第一个元素开始,然后依次和剩余的元素进行比较,若小于相邻元素,则交换两者位置,同时将较大元素作为下一个比较的基准元素,继续将该元素与其相邻 ...

最新文章

  1. PHP实现MVC开发: 一个简单的MVC(转)
  2. 详解XMind各种上传分享分类
  3. 继国美处罚“摸鱼”员工后,网易出品之摸鱼计算器...
  4. 【struts2】struts2拦截器
  5. 业务功能中包含邮件发送,怎么测试?
  6. 谈谈IP和MAC捆绑的破解之道
  7. 找出两个字符串中所有共同的字符_面试中的两个字符串问题竟给我整懵了?!| 原力计划...
  8. 小鹏汽车副总裁纪宇:坚持智能化技术自研,打造最深的护城河
  9. CISA:很多受害者和 SolarWinds 之间并不直接相关
  10. ios整理(五)小应用-重力感应
  11. PHP中面向对象分析设计的经验总结
  12. 炸场!通用人工智能最新突破:一个模型、一套权重通吃600+视觉文本和决策任务,DeepMind两年研究一朝公开...
  13. 生产质量分析方案,人机料法环全面解析,必看好文
  14. 三维点云处理-1.2主成分分析PCA
  15. 交换机(三层)接入层、汇聚层和核心层交换机的特点
  16. 快排三种基本解法以及两种快排优化
  17. 非常简单-Linux环境下(有公网IP)或虚拟主机的环境下如何做一个网站???
  18. “江湖笑”-献给怀有梦想的北漂一族
  19. 微信公众平台测试帐号申请最新地址
  20. 零基础学Arcgis(七)|空间数据采集与管理(4)数据检查

热门文章

  1. 如何启用计算机端口,Win7系统下开启计算机端口的方法
  2. 线程--promise furture 同步
  3. 3dsmax模型和导入模型到unity3d 设置
  4. 四平方和 附代码优化流程
  5. 性格社交平台“先知先觉”,欲打造性格关系链,重新定义移动社交
  6. 某天突然放巨量到底意味着什么?
  7. 工业温度控制器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  8. “网络发现”不能启用问题的答案
  9. OSChina 周二乱弹 —— 吾不好梦中插人
  10. Tacview 添加自定义模型