java中的冒泡和选择排序(附带习题)

来源:互联网 发布:python 远程控制 编辑:程序博客网 时间:2024/06/17 05:45

1. 冒泡排序

两个两个进行比较,如果后面的大,就交换位置

public class Test1 {    public static void main(String[] args) {        //定义一个数组        int[] array = { 5, 6, 13, 2, 7, 23, 8, 11 };        //循环遍历次数        for (int i = 0; i < array.length; i++) {            每一次循环都需要对比            for (int j = 0; j < array.length - i - 1; j++) {                // 比较j和j+1                if (array[j] > array[j + 1]) {                    int temp = array[j];                    array[j] = array[j + 1];                    array[j + 1] = temp;                }            }        }        System.out.println(Arrays.toString(array));    }}

运行结果:

[26, 47, 93, 90, 38, 16, 81, 80, 63, 38][16, 26, 38, 38, 47, 63, 80, 81, 90, 93]

2.选择排序

用第一个和后面的去比较,如果大,交换位置

public class Test2 {    public static void main(String[] args) {        //定义一个数组 赋值几个随机数字        int[] array = { 5, 6, 13, 2, 7, 23, 8, 11 };    for (int i = 0; i < array.length; i++) {            for (int j = i + 1; j < array.length; j++) {                if (array[j] < array[i]) {                    //引用第三方变量                    int temp = array[j];                    array[j] = array[i];                    array[i] = temp;                }            }        }        System.out.println(Arrays.toString(array));    }}

运行结果如下:

[1, 3, 4, 5, 6, 7, 8, 9]