Java中一些数组排序

    科技2022-08-12  104

    1、数组遍历


    首先定义个数组:

    int[] arr = {10, 1, 3, 5, 7, 9};

    ① 通过for循环遍历数组

    for (int i = 0; i < arr.length; i++) { // 将索引值赋值给一个整形变量 int num = arr[i]; //打印输出 System.out.println("[" + i + "]:" + num); }

    运行结果如下:

    [0]:10 [1]:1 [2]:3 [3]:5 [4]:7 [5]:9

    ② 通过foreach遍历数组

    for (int i : arr) { System.out.println(i); }

    运行结果如下:

    10 1 3 5 7 9

    2、数组排序


    ① 冒泡排序

    冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。

    它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。

    这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。

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

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

    来吧展示:

    package com.baidou; import java.util.Arrays; import java.util.Random; /** * 冒泡排序 * Created by baidou on 2020/9/23. */ public class ArrayTest03 { public static void main(String[] args) { int[] arr = new int[100]; Random random = new Random(); for (int i = 0; i < arr.length; i++) { arr[i] = random.nextInt(arr.length + 1); } System.out.println("原数组:"); System.out.println(Arrays.toString(arr)); System.out.println("排序后的数组为:"); // Arrays.sort(arr); // System.out.println(Arrays.toString(arr)); for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - i - 1; j++) { if (arr[j] > arr[j + 1]) { //交换两个变量的值需要借助一个临时变量。 int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } System.out.println(Arrays.toString(arr)); } }

    运行结果如下:

    原数组: [24, 0, 39, 0, 55, 67, 6, 86, 34, 100, 24, 51, 77, 47, 74, 80, 82, 75, 63, 31, 20, 51, 40, 19, 35, 19, 24, 61, 11, 90, 16, 18, 80, 45, 82, 95, 24, 14, 80, 47, 56, 5, 3, 62, 15, 15, 2, 14, 75, 85, 40, 50, 56, 55, 36, 31, 51, 28, 2, 0, 52, 78, 45, 92, 91, 14, 39, 38, 30, 70, 52, 40, 87, 75, 60, 32, 97, 53, 19, 26, 28, 71, 82, 53, 9, 27, 61, 55, 38, 2, 89, 32, 70, 26, 53, 74, 85, 44, 30, 58] 排序后的数组为: [0, 0, 0, 2, 2, 2, 3, 5, 6, 9, 11, 14, 14, 14, 15, 15, 16, 18, 19, 19, 19, 20, 24, 24, 24, 24, 26, 26, 27, 28, 28, 30, 30, 31, 31, 32, 32, 34, 35, 36, 38, 38, 39, 39, 40, 40, 40, 44, 45, 45, 47, 47, 50, 51, 51, 51, 52, 52, 53, 53, 53, 55, 55, 55, 56, 56, 58, 60, 61, 61, 62, 63, 67, 70, 70, 71, 74, 74, 75, 75, 75, 77, 78, 80, 80, 80, 82, 82, 82, 85, 85, 86, 87, 89, 90, 91, 92, 95, 97, 100]

    ② 使用Java标准库提供的Arrays.sort()进行快排;

    Arrays.sort(arr);
    Processed: 0.011, SQL: 8