冒泡排序和选择排序

冒泡排序

  • 可以说是最简单的一种排序了,其排序的流程是

    • 对比数组中的各个数据,依次比较相邻的两个元素的大小
    • 如果前面的数据大于后面的数据,就交换这两个数据,如下

冒泡排序和选择排序

  • 这只是一次排序过程的结果,目前数组内的数据还不是有序的,但是已经把最大值给确定了,所以还需要多次排序,所以可以看出冒泡排序并不是高效的排序算法
  • 排序算法的java实现

    private static void mp(int[] arrs) {
            int tmp ;
            for (int i = 1; i < arrs.length; i++) {
                for (int j = 0; j < arrs.length - i; j++) {
                    if (arrs[j] > arrs[j+1]){
                        tmp = arrs[j];
                        arrs[j] = arrs[j+1];
                        arrs[j+1] = tmp;
                    }
                }
            System.out.println(Arrays.toString(arrs));
            }
        }
  • 输出的排序过程为

    [12, 37, -2, 3, 999]
    [12, -2, 3, 37, 999]
    [-2, 3, 12, 37, 999]
    [-2, 3, 12, 37, 999]

选择排序

  • 这也是比较简单的一种排序算法,主要的流程是

    • 遍历数组取数组内最小的数据与数组的0下标进行交换,这样就确定了最小值
    • 然后从下标1之后的数据中找出最小值与下标为1的数据进行交换,就确定了第二小的数据,依次就完成了排序过程

冒泡排序和选择排序

  • 排序算法的java实现

    public static void xz(int[] arrs){
        int index ,temp = 0;
        for (int i = 0; i < arrs.length; i++) {
            index = i;
            for (int j = i; j < arrs.length; j++) {
                if (arrs[j] < arrs[index]){
                    index = j;//寻找最小数下标
                }
            }
            //判断最小数是否是自己
            if (index != i){
                temp = arrs[index];
                arrs[index] = arrs[i];
                arrs[i] = temp;
            }
        }
        System.out.println(Arrays.toString(arrs));
    }
    • 输出的排序过程为

      [-2, 12, 37, 999, 3]
      [-2, 3, 37, 999, 12]
      [-2, 3, 12, 999, 37]
      [-2, 3, 12, 37, 999]
      [-2, 3, 12, 37, 999]
上一篇:简单选择排序(Java)


下一篇:Exchange邮箱登陆界面添加验证码功能完美解决方案