首页 > 其他分享 >冒泡排序

冒泡排序

时间:2024-05-06 19:45:23浏览次数:13  
标签:int 元素 交换 冒泡排序 buf 比较

冒泡排序

冒泡排序也被称为起泡排序,该排序算法的原理就是经过一系列的交换实现的,也就是用第一个元素和第二个元素进行比较,如果第一个元素的值大于第二个元素则两者位置互换,否则不交换。然后第二个元素和第三个元素比较.......最后序列中最大的元素被交换到了序列的尾部,这样就完成了一轮交换,经过n轮交换之后,就可以得到一个有序序列。

当然,除了从左向右交换的方案外,另外一种冒泡排序就是重复“从序列右边开始比较相邻两个数字的大小,再根据结果交换两个数字的位置”这一操作的算法,也就是从右往左交换。在这个过程中,数字会像泡泡一样,慢慢从右往左“浮”到序列的顶端,所以这个算法才被称为“冒泡排序”。

// 冒泡排序,指的是元素两两之间进行比较交换,需要比较n轮,每轮需要比较m次,从左向右升序
void BubbleSort(int buf[], int bufsize)

{
    int temp = 0;                     ////为了临时存储交换值
    for (int n = 1; n < bufsize; n++) //.循环比较元素,需要比较n轮
    {
        for (int m = 0; m < bufsize - n; m++) /// 每轮需要比较m次
        {                                     // 数组元素两两之间进行比较交换 buf[0]buf[1]   buf[1] buf[2]
            if (buf[m] > buf[m + 1])
            {
                temp = buf[m];       // 备份前一个
                buf[m] = buf[m + 1]; // 把后面交换到前面
                buf[m + 1] = temp;   // 把前面交换到后面
            }
        }
    }
}

例如 有一个数组 [8] [9] [5] [4] [1]
则需要比较n轮需要比较4轮
[8] [9] [5] [4] [1]
每轮需要比较5-n 轮

标签:int,元素,交换,冒泡排序,buf,比较
From: https://www.cnblogs.com/fzhyy/p/18175717

相关文章

  • 冒泡排序
    数据结构冒泡排序//元素两两之间进行比较交换,需要比较n轮,每轮需比较m次,从左向右升序voidbubbleSort(intbuf[],intbufsize){inttemp=0;//临时存放交换值for(intn=1;n<bufsize;++n)//每轮需要比较n次{for(intm=0;m<bufsize-n;++m)//比较m轮......
  • 冒泡排序
    数据结构冒泡排序1.冒泡算法思想:冒泡排序也被称为起泡排序,该排序算法的原理就是经过一系列的*交换*实现的,也就是用第一个元素和第二个元素进行比较,如果第一个元素的值大于第二个元素则两者位置互换,否则不交换。然后第二个元素和第三个元素比较.......最后序列中最大的元素被交......
  • dotnet 冒泡排序
    //Seehttps://aka.ms/new-console-templateformoreinformationusingConsoleApp1;Console.WriteLine("Hello,World!");//我委托你办事情,作为委托方只要满足被委托方的规则的事情(也就是方法),他都可以帮我解决,我需要给它提供金钱(也就是参数)。//总结:就是一些常用(公用的......
  • 冒泡排序
    冒泡排序:也就是用第一个元素和第二个元素进行比较,如果第一个元素的值大于第二个元素则两者位置互换,否则不交换。然后第二个元素和第三个元素比较.......最后序列中最大的元素被交换到了序列的尾部,这样就完成了一轮交换,经过n轮交换之后,就可以得到一个有序序列。#include<stdio.h>......
  • 冒泡排序
    /*******************************************************************************************************@filename: :BubbleSort*@brief :冒泡排序*@author :[email protected]*@date :2024/04/30*@version1.0 :V1.0*@prop......
  • 二分法,冒泡排序
    Ⅰ算法之二分法算法其实就是解决问题的有效方法'''二分法使用有前提:数据集必须有先后顺序(升序,降序)''''''二分法原理 获取数据集中间的元素比对大小 如果中间元素大于目标数据那么保留数据集的左边一半 如果中间元素小于目标数据那么保留数据集的右边一半 针对剩......
  • 冒泡排序
    packageArray;importjava.util.Arrays;//冒泡排序//1.比较数组中,两个相邻的元素,如果第一个数比第二个数大,我们就交换他们的位置//2.每一次比较,都会产生一个最大,或者最小的数字//3.下一轮测试可以少一次排序//4.依次循环,直到结束publicclassDemo06{publicstaticvoid......
  • 排序1-冒泡排序
    排序1-冒泡排序冒泡排序的次数是递减的,第一次确定了最大元素的位置,所以第二次只需要进行n-1次排列,第二次确定了第二大元素的位置,所以第三次只需要进行n-2次排列,以此类推for(inti=0;i<len;i++){//每次遍历的次数是递减的//所以j=len-1-i......
  • js带注释的冒泡排序算法
    一、简述冒泡排序(BubbleSort)是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果二者的顺序(如从大到小、首字母从A到Z)错误就交换。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法......
  • 常见的排序算法——冒泡排序(二)
    本文记述了冒泡排序微小改动的基本思想和一份参考实现代码,并在说明了算法的性能后用随机数据进行了验证。◆思想更少的比较可以节省一定的时间,此改动可以减少更小范围的比较。(把水平陈列的数组逆时针旋转90°后,有助于理解后续的内容。)将包含顶层以下的所有元素作为待排序范围......