首页 > 编程语言 >[排序算法] 双向冒泡排序 (C++)

[排序算法] 双向冒泡排序 (C++)

时间:2022-11-18 19:33:19浏览次数:78  
标签:right int C++ flag 冒泡排序 排序 left

前言

本文章是建立在冒泡排序的基础上写的,如还有对 冒泡排序 不了解的童鞋,可以看看这里哦~ 冒泡排序 C++


双向冒泡排序原理

双向冒泡排序 的基本思想与 冒泡排序还是一样的。冒泡排序 每次将相邻的两个数进行比较,将较大的放到后面,每一趟比较都将当前最大的数字排到最后面,然后从头再开始进行下一趟比较。(若有 n 个数字,当完成 n - 1 趟比较后,便完成了排序)
双向冒泡排序 只不过进行了一点小小的优化。其是从左右二路并行操作,进行比较和交换。从左路进行比较的过程与冒泡排序一致,从右路进行比较则是将当前最小的数字交换到数组的最左侧。然后 (我自己是将每做一次双向冒泡视为一趟) 每一趟比较都处理掉当前最小数字和最大数字,使其完成归位,下一趟比较只需要处理中间部分就可以啦~。
虽然进行了小小的优化,但是只是稍微提高了排序的效率,只是单纯地进行双向并行比较而已,并没有大幅度缩短排序的时间

标签:right,int,C++,flag,冒泡排序,排序,left
From: https://www.cnblogs.com/MAKISE004/p/16904170.html

相关文章

  • C++ 反射实现
    //class.h#ifndefCLASS_H#defineCLASS_H#include<iostream>#include<functional>#include<memory>#include<map>#include<stdarg.h>usingnamespacestd;......
  • C++编写Time类显示系统时间
    编写Time类,要求:(1)包含年、月、日、时、分、秒的信息。(2)构造函数将类的对象初始化为系统当前时间(使用头文件time.h中的time函数。)(3)能按照标准格式输出对象表示的时间。......
  • C++ referemce and dereference
    //对reference&和dereference*的进一步理解//#include"iostream"intmain(){inta=9;//等号左边&为引用,取alias举个例子//int&a=b;b=......
  • c++ 调用 python 数据类型对照表
    ParsingargumentsandbuildingvaluesThesefunctionsareusefulwhencreatingyourownextensionsfunctionsandmethods.Additionalinformationandexamplesa......
  • C++不知算法系列之集结常规算法思想
    1.前言数据结构和算法是程序的2大基础结构,如果说数据是程序的汽油,算法则就是程序的发动机。什么是数据结构?指数据之间的逻辑关系以及在计算机中的存储方式,数据的存储......
  • c++ 调用 python 备忘
    PyBytesObject值的获取:PyObject*pFuncSetCredentialResult=PyObject_CallObject(pFuncSetCredential,pFuncSetCredentialArgs);PyBytesObject*pBytes......
  • 【c&c++】C语言 结构体 - 字节对齐 使用预处理命令 #pragma 对齐
    在C语言中每个数据类型都有他的对齐方式例如char是一个一节对齐,int是四个字节对齐,float是八个字节对齐,short是两个字节对齐由于对齐方式的特性就会拥有相同成员的结......
  • C语言:规则排序
    题目输入正整数n,再输入n个正整数,先将其中的奇数从小到大排序,再将偶数从大到小排序。 例如:  输入:828522391125  输出:35911252282代码#in......
  • [C++]-日志记录库SPDLog简介[通俗易懂]
    文章目录spdlog库日志记录槽sink日志记录器logger输出格式pattern对齐方式截断字符串格式化fmtFormatSpecificationspdlog使用异常处理logger基......
  • 【c&c++】二级指针的使用
    有时候,我们需要在函数体的内部申请内存空间并初始化,然后将内部申请的存储空间交付给外部指针来引用,这时候,我们可以使用二级指针作为申请空间的函数的参数来实现。main.c......