精华内容
下载资源
问答
  • 冒泡算法简述
    2020-09-10 17:19:36

    注:本文章主要是对于像我这样刚学习冒泡算法的人来写的,因为网上其他关于冒泡算法文章的专业性较强,容易看不懂,所以我就简单讲解一下,如果有错误的地方,欢迎指出并提出意见,感谢!!!(≧∀≦)ゞ

    冒泡算法:

    简单来说,冒泡算法就是让数组内的元素进行排序的。

    原理:用例子来说明原理(( •̀ ω •́ )✧绝对不是我懒哦~)

    	//冒泡算法
    	//用题来举例子
    	//使用数组保存 3 8 2 10 15 17 并从大到小进行排序
    	public static void main(String[] args) {
    		int [] num= {3,8,2,10,15,17};
    		for (int i = 0; i < num.length-1; i++) {
    			for (int j = 0; j < num.length-1; j++) {
    				if (num[j]<num[j+1]) {
    					int a =num[j];
    					num[j]=num[j+1];
    					num[j+1]=a;
    				}
    			}
    		}
    		for (int i = 0; i < num.length; i++) {
    			System.out.print(num[i]+" ");
    		}					
    	}
    

    分步来讲,
    第一步:声明数列

    int [] num = {3,8,2,10,15,17};
    

    可以看到这是一开始我声明的数列
    可以看到他的顺序是被打乱的
    接下来让我们用冒泡算法给他进行一个排序

    第二步:外循环

    for (int i = 0; i < num.length-1; i++) {
    
    //第一层循环(外循环),这个是用来让他多次排序的
    			
    }
    

    这个的作用是整体的一个大循环次数,也是它排列的次数

    第三步:内循环

    for (int j = 0; j < num.length-1; j++) {
    
    //第二层循环(内循环),这个是在小位置上让他进行排序的			
    
    }
    

    这个就是小位置上的循环,如:
    位置1和位置2比较,位置2和位置3比较,
    但是这样会有两个位置的数没法比较,因此就需要大循环再来重新排序
    如同:a b c 三个数
    a和b比较,假如 b满足条件 b 再和 c 比较
    但是这样 还是不知道a 和 c 之间的关系

    第四步:相邻位置比较并交换位置

    if (num[j]<num[j+1]) {
    				
    //判断,用来判断相邻的两个元素的大小,如第一个元素与第二个元素比较,
    				
    		int a =num[j];
    		num[j]=num[j+1];
    		num[j+1]=a;
    		//上面三行代码主要是用来换位置的,
    			/*那三行换位置的意思如下:
    				a=1 b=2
    				如果想让他们变成 a=2 b=1
    				那么就需要一个新的变量 c
    				c=a  =1
    				a=b  =2
    				b=c  =1
    				这样他们就变成了我们想要的a=2 b=1 */
    }
    

    这个也就是冒泡算法最内层的逻辑了,相邻的两个位置比较,谁大谁在前面,因为我写的是由大到小排序,当然也可以谁小谁在前面。

    更多相关内容
  • LabVIEW实现冒泡算法求数组最大值
  • 代码如下:/*您真的理解冒泡排序吗?还是背下来了呢?冒泡排序真的只有一种方法吗? * 有些东西别想太复杂,简简单单的解决不是更好? * 虽然方法不一样,思想都是大同小异,希望读者仔细体会…… * */ using System;...
  • 该源码使用Qt可以可视化展示冒泡排序算法实现效果,方便初学者理解冒泡算法,如果你有一些其他的小需求,可以在此基础上修改完善
  • 冒泡算法讲解

    2018-10-29 16:10:40
    C语言冒泡算法视频讲解,两个积分买不了上当、买不了受骗……
  • 冒泡算法的改进算法

    2013-11-01 20:39:06
    冒泡算法的改进思想: 1.记录从第0下标开始一直递增的最后一个数的下标start,在以后的每趟排序中都是从start下标开始比较,免去了从头到此下标的比较 2.记录从最后一个下标开始一直递减的最后一个下标end,在以后...
  • 冒泡排序(Bubble Sort)通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序(前后大小与要求的顺序不一致)则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上...

    基本思想
    冒泡排序(Bubble Sort)通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序(前后大小与要求的顺序不一致)则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。

    代码实现

    public class BubbleSort {
    
        /**
         * 按照从小到达的顺序进行排序
         * @param array 要进行排序的数组
         */
        public static void bubbleSort(int[] array){
            int temp = 0;//用于前后元素交换时使用
    
            //数组有n个元素,排序只需n-1次就能完成
            for (int i = 0; i <array.length-1 ; i++) {
                for (int j = 0; j <array.length-1-i ; j++) {
                    if (array[j]>array[j+1]){//前后元素进行交换,可以看出冒泡算法是一种交换算法
                        temp = array[j];
                        array[j] = array[j+1];
                        array[j+1] = temp;
                    }
                }
            }
        }
    }
    

    代码解释:
    在这里插入图片描述
    测试数组:int[] array = {23,9,-2,-1,8,99,100,91};
    执行结果:
    在这里插入图片描述
    算法优化
    可以从上述的每一趟的输出结果可以看出,在第二次排序完成后整个数组就已经按照从小到大的顺序排列了,后面的几次循环只是在执行if语句,而实际上并没有进行排序。浪费了时间和空间
    优化:

    int temp = 0;//用于前后元素交换时使用
    boolean isChanged = false;//标识变量,记录数组是否提前完成了排序
    
    //数组有n个元素,排序只需n-1次就能完成
    for (int i = 0; i <array.length-1 ; i++) {
        for (int j = 0; j <array.length-1-i ; j++) {
            if (array[j]>array[j+1]){
                isChanged  =true;//证明元素交换过,即数组还未完全有序
                temp = array[j];
                array[j] = array[j+1];
                array[j+1] = temp;
            }
        }
        if (!isChanged){
            break;//左右元素未交换,说明数组已完成排序,结束排序循环
        }
        System.out.printf("第%d次排序结果",i+1);
        System.out.println(Arrays.toString(array));
        isChanged = false;//重置,用于下次判断,这个重置非常重要
    }
    
    

    执行结果:
    在这里插入图片描述
    可以看出来for循环只执行了两次就结束并完成了数组的排序

    展开全文
  • 排序冒泡算法

    2018-03-07 19:07:55
    用c++写的冒泡算法,里面有工程文件可以直接打开。。。。。。。。。。。。。。
  • codesys通过ST语言时间经典冒泡算法实现排序功能,并通过可视化仿真进行验证 参考博客地址:https://blog.csdn.net/qq_19979629/article/details/122273823 codesys版本V3.5 .14.10,最新版的V3.5 .17.20可以查看程序...
  • 冒泡算法实现Java代码

    2018-07-27 17:41:28
    冒泡排序算法实现,提供相关代码学习代码算法实现,技术原理实现以及更多相关的代码资源:关注码农的博客,代编码和合作vx:lcz950818,备注:合作
  • 冒泡排序算法的思想: 首先将第一个记录的关键字和第二个关键字进行比较,若为逆序则将两个记录进行交换...先看一下基础冒泡算法: 代码如下:int BubbleSort(MergeType* L){ int i, j; for (i = 0; i <= L->len-1
  • 经典算法之冒泡算法

    2020-11-20 18:11:54
    冒泡算法是一种经典的排序算法,在大学起初学习C语言的时候,冒泡算法是笔者接触编程的第一个算法。冒泡,顾名思义就是轻(小)的往上冒,重(大)的往下沉,也称鸡尾酒算法。 算法解析 首先我们需要确立两层嵌套for...
    前言

    冒泡算法是一种经典的排序算法,在大学起初学习C语言的时候,冒泡算法是笔者接触编程的第一个算法。冒泡,顾名思义就是轻(小)的往上冒,重(大)的往下沉,也称鸡尾酒算法。

    算法解析

    首先我们需要确立两层嵌套for循环,第一层for循环主要控制总体循环的趟数,第二层for循环主要是比对相邻的两个数,运用CAS的思路将每一趟的第二层for循环执行完成,就会将一个最大的数沉到最下面。来张图,理解效果会更佳!

    在这里插入图片描述

    算法实战
    public class BubbleSort {
       
        public static void main(String
    展开全文
  • 本文实例讲述了JavaScript冒泡算法。分享给大家供大家参考,具体如下: 在面试中经常会遇到面试官问到冒泡算法。今天总结一下。 ###概念 有一组数,依次比较两个相邻的数,如果他们的顺序(如从大到小或从小到大等)...
  • 冒牌排序可谓最基本的排序算法之一,稳定而没有优化空间:D 下面就一起来看一下Swift代码实现冒泡排序算法的简单实例:
  • C语言———冒泡算法

    千次阅读 多人点赞 2021-07-21 16:05:50
    一:冒泡算法是怎么样去对一堆无序数字进行排序的? 1.首先我先说明一下冒泡排序的特点:冒泡排序特点就是每一趟排序把最大的数字找出来并且同时放在最后。这样通过有限次的排序后,有限-无序-序列的数字就会被排序...

    一:冒泡算法是怎么样去对一堆无序数字进行排序的?

    1.首先我先说明一下冒泡排序的特点:冒泡排序特点就是每一趟排序把最大的数字找出来并且同时放在最后。这样通过有限次的排序后,有限-无序-序列的数字就会被排序成有序序列。

    2.那么冒泡算法是如何对数字进行排序的呢?

    概念:以第一个数字为首,与后面第二个数字进行比较,如果第一个数字比第二个数字大,那么就把第一个数字与第二个数字的位置进行交换,否则该数字位置不变。然后第二个数字又与第三个数字进行比较,如果第二个数字大于第三个数字的话,则第二个数字与第三个数字进行位置交换......一直重复这样的操作,那么一趟排序下来就可以找出该序列的最大值了。(注意:每一趟排序的时候,之前所有排序出来的最大值不再参与本次排序)

    下面是对:1 23 4 98 70 10 9 这一无序数字序列进行第一趟排序

    ①:1比23小,不调换位置。此时序列为:1 23 4 98 70 10 9

    ②:23比4大,调换位置。此时序列为:1 4 23 98 70 10 9(23与4调换了位置)

    ③:23比98小,不调换位置。此时序列为:1 4 23 98 70 10 9

    ④:98比70大,调换位置。此时序列为:1 4 23 70 98 10 9(98与70调换了位置)

    ⑤:98比10大,调换位置。此时序列为:1 4 23 70 10 98 9(98与10调换了位置)

    ⑥:98比9大,调换位置。此时序列为:1 4 23 70 10 9 98(98与9调换了位置)

    需要注意的是,当进行第二趟排序的时候,是不需要与98这个数字比较的。因为第一趟排序可以把无序序列中的最大数字排在后面,而第二趟就是把第二大的数字放在后面,第三趟排序就是把第三大的数字放在后面.......

    如果觉得难以理解的朋友可以在草稿纸上画两个杯子,一号杯子装着所有的无序数字,二号杯子则为空。把每一趟排序出来的数字有序地放在二号杯子里面,然后对一号杯子重新排序。你会发现当你第二次对一号杯子进行排序的时候,所找出来的那个最大数字其实就是原来一号杯子所有数字的第二大数字。而第三次对一号杯子排序则找出来的是原有序列的第三大的数字。

    二:代码实现如下:

     运行结果如下:

     

    展开全文
  • 在本篇文章里我们给大家分享了关于易语言的冒泡算法相关知识点内容,有兴趣的朋友们还可以学习下。
  • 常见十大算法 冒泡算法

    千次阅读 2019-10-10 16:55:12
    它重复地走访过要排序的数列,一次比较两个元素,如果...1.冒泡算法-简单传统效率最低 <1>.比较相邻的元素。如果第一个比第二个大,就交换它们两个; <2>.对每一对相邻元素作同样的工作,从开始第一...
  • 本文分享的实例主要是Python编程二分法实现冒泡算法+快速排序,具体如下。 冒泡算法: #-*- coding: UTF-8 -*- #冒泡排序 def func(lt): if type(lt).__name__ !='list' and type(lt).__name__ !='tuple': return ...
  • 该源码使用Qt可以可视化展示冒泡排序算法实现效果,在原来的基础上添加了冒泡排序算法的比较次数和移动次数,方便初学者理解冒泡排序算法的时间复杂度
  • 排序算法之冒泡算法

    2021-12-08 23:49:00
    系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以...今天让我们聊一聊排序算法中冒泡算法。 一、什
  • js实现冒泡算法

    千次阅读 2019-03-10 11:18:12
    冒泡排序 function bubbleSort(array){ for (let i=array.length;i>0;i--){ for (let j=0;j;j++){ if (array[j]>array[j+1]){ var temp=array[j]; array[j]=array[j+1]; array[j+1]=temp; } } } ...
  • 冒泡算法.gif

    2019-08-24 21:09:16
    冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是...
  • 冒泡算法和递归算法

    千次阅读 2019-02-18 16:08:08
    冒泡算法是java中用来排序的算法,冒泡算法会改变原数据中数据的位置, 并不是仅仅排序,看清需求在决定用不用冒泡。 以一串数组为例,冒泡算法依据两个for循环嵌套,逐次比较,互换位置,直到位置不在改变时停止...
  • 本文是分享了一段使用递归实现php冒泡算法的代码,并记录了使用过程终于到的问题以及解决方法,有需要的小伙伴可以参考下哦
  • [C/C++]C语言实现简单的冒泡算法

    千次阅读 2021-03-01 18:20:38
    用C语言实现对整形数组的冒泡排序 冒泡排序:比较两个相邻的元素,将值大的元素交换到右边。 思 路: 遍历数组,对数组中相邻的两个元素进行比较,如果需要升序,前一个数据大于后一个数据时,交换两个位置上的数据...
  • C语言 冒泡算法

    万次阅读 2018-09-24 23:12:59
    泡排序算法的运作如下:   1, 比较相邻的元素,如果前一个比后一个大,就把它们两个调换位置。   2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 163,283
精华内容 65,313
关键字:

冒泡算法

友情链接: VFP-time-remind-.rar