精华内容
下载资源
问答
  • 要学习冒泡排序必须知道它的原理:冒泡排序算法的原理如下:比较相邻的元素。如果第一比第二大,就交换他们两每一对相邻元素做同样的工作,从开始第一到结尾的最后一对。这一点,最后的元素应该会是...

    要学习冒泡排序必须知道它的原理:

    冒泡排序算法的原理如下:

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

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

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

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

    例子:

    1,2,3,4,5,6

    就拿1到6来举例子吧!这里面有n个数字,你要对其进行从大到小的排序的话,你就要拿相邻的两个数进行比较,如果第一个数比第二个大就交换他们的位置:第二个就和第三个比较,一直这样下去,直到最小的就会在最后面了,然后继续从第一和第二个进行比较,如此下去。

    第1轮: 1,2,3,4,5,6   2,1,3,4,5,6     2,3,1,4,5,6    2,3,4,1,5,6    2,3,4,5,1,6    2,3,4,5,6,1

    第2轮:2,3,4,5,6,1   3,2,4,5,6,1     3,4,2,5,6,1    3,4,5,2,6,1    3,4,5,6,2,1

    第3轮:3,4,5,6,2,1   4,3,5,6,2,1     4,5,3,6,2,1    4,5,6,3,2,1

    第4轮:4,5,6,3,2,1   5,4,6,3,2,1     5,6,4,3,2,1

    第5轮:5,6,4,3,2,1  6,5,4,3,2,1

    由上面可以清楚了解到一个进行了五轮排序,后一轮都要比前一轮少一次比较,第一轮进行n-1次比较

    这样就可以编写代码了

    a_list = [1, 2, 3, 4, 5, 6]

    for t in range(len(a_list)-1):

    for i in range(0, len(a_list)-1):

    tmp = a_list[i]

    if a_list[i] < a_list[i+1]:

    a_list[i] = a_list[i+1]

    a_list[i+1] =tmp

    print(a_list)

    这样就是冒泡排序了。

    展开全文
  • 冒泡排序

    2020-05-12 14:10:01
    假设一共有n个元素进行冒泡排序,遵循的比较规则是相邻元素之间进行排序,元素一与元素二进行比较,此时会出现两种情况: (1)元素二大于元素一:那么两者不须交换位置,接下来进行元素二与元素三进行比较,...

    标题 关于冒泡排序浅谈

    冒泡排序是计算机领域的基础算法之一,在百度百科是这么解释的:
    在这里插入图片描述
    冒泡排序,顾名思义就是像水中冒泡一样来对元素进行排序。比较小的泡泡先浮上来,大的泡泡后浮上来,因为大小的原因导致浮上来的时间不同,可以因此进行比较。

    冒泡排序的具体比较流程

    假设一共有n个元素进行冒泡排序,遵循的比较规则是相邻元素之间进行排序,元素一与元素二进行比较,此时会出现两种情况:
    (1)元素二大于元素一:那么两者不须交换位置,接下来进行元素二与元素三进行比较,以此类推
    (2)元素一大于元素二:两者交换位置,然后在由元素一与元素三进行比较,同样以此类推
    确保每一次遍历都会把最大的元素排到末尾

    具体实现

    在这里插入图片描述
    注:%d 代表元素以十进制呈现
    \t 类似于Tab
    本篇文章是我对冒泡排序的一点浅浅的理解,希望可以帮到你,如果有地方我理解的有瑕疵,欢迎各位大佬们的批评

    展开全文
  • 比较相邻的元素。如果第一个比第二个大...第一次是对n个进行n-1次比较,进行到最后第n个的一个是最大的;第二次是对n-1个数进行n-2次比较,进行到最后第n-1个的一个是最大的;持续每次对越来越少的元素重复上面的...

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

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

    针对所有的元素重复以上的步骤,除了最后一个,即需要进行length-1次。

    第一次是对n个数进行n-1次比较,进行到最后第n个的一个是最大的;

    第二次是对n-1个数进行n-2次比较,进行到最后第n-1个的一个是最大的;

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

    升序排列:

    public class Test2 {

    public static void main(String[] args) {

    int [] nums = {5,6,4,8,9,3,2,1,7};

    for (int i = 0; i

    for (int j = i+1; j

    if (nums[i]>nums[j]){

    int n=nums[i];

    nums[i]=nums[j];

    nums[j]=n;

    }

    }

    }

    for (int num : nums) {

    System.out.print(num);

    }

    }

    }

    降序排列:

    public class Test1 {

    public static void main(String[] args) {

    int [] nums = {5,8,9,4,6,3,1,2,7,};

    for (int i = 0; i

    for (int j = i+1; j

    if (nums[i]

    int n=nums[i];

    nums[i]=nums[j];

    nums[j]=n;

    }

    }

    }

    for (int num : nums) {

    System.out.print(num);

    }

    }

    }

    展开全文
  • 第一次是对n个进行n-1次比较,进行到最后第n个的一个是最大的; 第二次是对n-1个数进行n-2次比较,进行到最后第n-1个的一个是最大的; 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 ...

    冒泡排序简介:
    比较相邻的元素。如果第一个比第二个大,就交换他们两个。
    对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
    针对所有的元素重复以上的步骤,除了最后一个,即需要进行length-1次。
    第一次是对n个数进行n-1次比较,进行到最后第n个的一个是最大的;
    第二次是对n-1个数进行n-2次比较,进行到最后第n-1个的一个是最大的;
    持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

    升序排列:
    public class Test2 {
    public static void main(String[] args) {
    int [] nums = {5,6,4,8,9,3,2,1,7};
    for (int i = 0; i <nums.length ; i++) {
    for (int j = i+1; j <nums.length ; j++) {
    if (nums[i]>nums[j]){
    int n=nums[i];
    nums[i]=nums[j];
    nums[j]=n;
    }
    }
    }
    for (int num : nums) {
    System.out.print(num);
    }
    }
    }

    代码结果如下:
    在这里插入图片描述

    降序排列:
    public class Test1 {
    public static void main(String[] args) {
    int [] nums = {5,8,9,4,6,3,1,2,7,};
    for (int i = 0; i <nums.length; i++) {
    for (int j = i+1; j <nums.length ; j++) {
    if (nums[i]<nums[j]){
    int n=nums[i];
    nums[i]=nums[j];
    nums[j]=n;
    }
    }
    }
    for (int num : nums) {
    System.out.print(num);
    }
    }
    }

    展开全文
  • 每次冒泡操作都会相邻的两个元素进行比较,看是否满足大小关系要求。如果满足就让它俩互换。一次冒泡会让至少一个元素移动到它应该的位置,重复 n 次,就完成了 n 个数据的排序工作。举个栗子:保险柜里有5元,...
  • 冒泡排序算法

    2021-01-31 11:46:05
    依次类推,直至第 n-1个元素和第 n个元素进行比较为止。上述过程称为第一趟冒泡排序,其结果使最大值元素被放置最后一个位置(第 n个位置)。然后进行第二趟冒泡排序前 n-1个元素进行同样操作,其结果是使第二...
  • Java实现冒泡排序算法及其的简单优化示例原理冒泡排序大概是所有程序员都会用的算法,也是最熟悉的算法之一。它的思路并不复杂:设现在要给数组arr[]排序,它有n个元素。1.如果n=1:显然不用排了。(实际上这个讨论...
  • 它的思路并不复杂:设现在要给数组arr[]排序,它有n个元素。1.如果n=1:显然不用排了。(实际上这个讨论似乎没什么必要)2.如果n>1:(1)我们从第一个元素开始,把每两个相邻元素进行比较,如果前面的元素比后面的大...
  • 访谈冒泡排序

    千次阅读 2014-04-24 21:25:29
    今天来对冒泡排序做一个访谈,让我们先了解一下冒泡先生吧。。 什么是冒泡排序呢。 冒泡排序是一种简单的交换类排序。其基本思路是,从头开始扫描待排序的元素,扫描过程中...一般地,对n个元素进行冒泡排序,总共
  • 1.冒泡排序也叫起泡排序,气泡排序。...第二趟排序n-1个元素进行上述操作,第二大的元素排在n-1的位置;最大比较次数n(n-1)/2 。时间复杂度为O(n**2) 冒泡排序是稳定的。#升序例子def mppx(data...
  • 冒泡排序总结

    2020-08-05 14:45:14
    冒泡排序总结算法思想:图片演示代码冒泡排序常规...冒泡排序的思想就是利用的比较交换,利用循环将第 i 小或者大的元素归位,归位操作利用的是 n 个元素中相邻的两个进行比较,如果顺序正确就不交换,如果顺序错误就
  • 冒泡排序与选择排序

    2016-03-21 19:57:24
    冒泡排序的原理是对数组多次扫描,每次扫描都相邻的两个元素的顺序进行调整。假设我们按升序排列数组,那么相邻两个元素中如果左边的元素大于右边的元素,就交换这两个元素位置,否则不交换。依次扫描过数组中全部...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 563
精华内容 225
关键字:

在对n个元素进行冒泡排序