美文网首页
冒泡排序和选择排序

冒泡排序和选择排序

作者: ZuYuan | 来源:发表于2019-06-27 15:31 被阅读0次
  • 归属:蛮力法

  • 算法复杂度:O(n^2)

  • 稳定性:

    • 冒泡排序:稳定
    • 选择排序:不稳定
  • 思想:

    冒泡排序:遍历数组,当前下标的数大于后一个下标的数,则将两个下标的数交换,实现每一次遍历数组都移动一个最大元素到数组尾部(尾部排好序了则不再参加排序)。
    选择排序:遍历数组,每次遍历记录最小的元素,第一次跟index=0交换,第二次跟index=1交换,以此类推,实现排序。

  • 代码:


    /**
     * 冒泡排序
     */
    public static void bubbleSort(int[] nums) {
        for(int i = 0; i < nums.length - 1; i++) {
            //数组尾部已经排好序
            for (int j = 0; j < nums.length - 1 - i; j++) {
                if (nums[j + 1] < nums[j]) {
                    int aNum = nums[j];
                    nums[j] = nums[j + 1];
                    nums[j + 1] = aNum;
                }
            }
        }
    }

    /**
     * 选择排序
     */
    public static void selectionSort(int[] nums) {
        for(int i = 0; i < nums.length - 1; i++) {
            int minIndex = i;
            for (int j = i + 1; j < nums.length; j++) {
                if (nums[j] < nums[minIndex]) minIndex = j;
            }
            if (minIndex != i) {
                int aNum = nums[minIndex];
                nums[minIndex] = nums[i];
                nums[i] = aNum;
            }
        }
    }

相关文章

  • JAVA简单排序

    选择排序和冒泡排序: 排序结果

  • 常用的两种排序-冒泡、选择

    Swift版 冒泡排序 选择排序 OC版 冒泡排序 选择排序

  • 冒泡算法/选择排序算法/直接插入排序算法C语言实现

    排序算法 冒泡排序 选择排序 冒泡排序和选择排序的核心思路: 冒泡排序是:相邻两个元素两两进行比较,小则交换位置。...

  • android算法 - 排序

    冒泡排序 选择排序 插入排序 快速排序 堆排序 其中简单排序就是冒泡排序,选择排序和插入排序。继而在分冶合并思想上...

  • OC中的排序算法

    目录 冒泡排序、快速排序、选择排序、插入排序 冒泡 快排 选择 插入

  • 记录几个常见的排序算法

    常见的排序有:快速排序、冒泡排序、希尔排序、选择排序、插入排序、归并排序 冒泡排序: 插入排序: 选择排序: 希尔...

  • python实现经典排序算法

    冒泡排序 这里是向前冒泡,即每一趟排序后最小元素冒泡至最前 选择排序 选择排序和冒泡相似,每一趟排序完后将最小元素...

  • Java实现常见的算法

    主要罗列了常见的选择排序,冒泡排序和快速排序,还有二分查找的算法。 选择排序 冒泡排序 快速排序 二分查找 注意二...

  • Java语言——数组排序算法

    数组有很多常用的算法,包括冒泡排序、直接选择排序和反转排序。 一、冒泡排序 冒泡排序是最常用的数组排序算法之一,它...

  • 排序

    冒泡排序: 冒泡排序 选择排序: 插入排序: 希尔排序: 归并排序: 快速排序: 堆排序: 计数排序: 桶排序: ...

网友评论

      本文标题:冒泡排序和选择排序

      本文链接:https://www.haomeiwen.com/subject/ubdrcctx.html