首页 > 其他分享 >【模版】冒泡排序

【模版】冒泡排序

时间:2023-12-20 20:11:07浏览次数:27  
标签:arr int 模版 元素 冒泡排序 flag len

刚学C++时书上就会写这个qwq属于最简单的排序算法惹。

算法步骤

比较相邻的元素。如果第一个比第二个大,就交换他们两个。

对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。

针对所有的元素重复以上的步骤,除了最后一个。

持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

void Bubble_Sort (int* arr[],int len) {
        for (int i = 1; i < len; i++) {
           // 设定一个标记,若为true,则表示此次循环没有进行交换,也就是待排序列已经有序,排序已经完成。
              boolean flag = true;

            for (int j = 0; j < len - i; j++) {
                if (arr[j] > arr[j + 1]) {
                swap(a[j],a[j+1])
                    flag = false;
               }
            }

           if (flag) {
               break;
            }
        }
}

图解:

 

标签:arr,int,模版,元素,冒泡排序,flag,len
From: https://www.cnblogs.com/Yukie/p/17917378.html

相关文章

  • 【模版】选择排序
    选择排序(Selectionsort)是一种简单直观的排序算法。1.基本思想首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。选择排序的思想其实和冒泡排序有点类似,都......
  • 【模版】计数排序
    引入:P1271【深基9.例1】选举学生会在实际中,一般会在投票区放n个投票箱,投完后只需要计数每个投票箱即可。就此可引入计数排序。本题AC代码(虽然这题直接sort就行了...)#include<iostream>usingnamespacestd;inta[1010]={0},n,m,tmp;intmain(){cin>>n>>m;for......
  • 【模版】归并排序
    归并排序,它有两大核心操作.一个是将数组一分为二,一个无序的数组成为两个数组。另外一个操作就是,合二为一,将两个有序数组合并成为一个有序数组。时间复杂度情况:最好和最快情况都是:O(NlogN)代码模版如下intarr[N],temp[N];voidmerge_sort(intarr[],intl,intr......
  • 【模版】快速排序
    快速排序基本思想通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。算法复杂度最差时间复杂度O(N2)平均时间复杂度O(Nl......
  • 【算法模版】二分查找
    1.简介故事分享......
  • 数据结构算法---冒泡排序
    冒泡排序(BubbleSort)是一种简单的排序算法,它重复地遍历要排序的列表,比较相邻两个元素并按照大小交换位置,直到整个列表排序完成。这种排序算法得名于越小的元素会经由交换慢慢"浮"到列表的顶端。下面是冒泡排序的基本步骤:从列表的第一个元素开始,比较它与下一个元素的大小。如果......
  • c++11 乱模版
    std::is_same,std::enable_if,std::is_integraltemplate<typenameT>boolisZero(Tv){if(std::is_same<T,float>::value){return(fabs(v)<FLT_EPSILON);}elseif(std::is_same<T,double>::value){......
  • java之冒泡排序
    冒泡排序原理:从第一个数开始,和后面一个数比较大小,根据升序或者降序,看是否需要互换位置。每一轮会把1个数罗列到正确位置,经过数组长度-1轮比较,排序完成。比如:对数组{11,55,33,22,44}进行升序排列数组长度是5,需要经过5-1轮,每一轮需要比较5-当前轮次。publicc......
  • 算法学习笔记二一冒泡排序
    目录什么是冒泡排序算法原理代码示例什么是冒泡排序​对给定数组进行遍历,每次比较相邻两个元素大小,若大的数值在前面则交换两数位置(升序),每完成一趟遍历数组中最大的元素都会上升到数组的末尾,这也是冒泡一词的由来。算法原理(升序)列表每相邻的数,如果前面比后面大,则交换这两个数......
  • 冒泡排序
    比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个,即需要进行length-1次。第一次是对n个数进行n-1次比较,进行到最后第n个的一......