• AJPFX:学习JAVA程序员两个必会的冒泡和选择排序


    * 数组排序(冒泡排序)

    * 冒泡排序: 相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处

    * 选择排序 : 从0索引开始,依次和后面元素比较,小的往前放,第一次完毕,最小值出现在了最小索引处


    * [1,3,9,5,7]  --> 排序  --> [1,3,5,7,9]
    */
    public class ArraysDemo {
            public static void main(String[] args) {
                    //定义数组
                    //int[] arr = {1,3,9,5,7};
                    int[] arr = {11,3,4435,435,21,33,432,3243};
                    //打印排序前的数组
                    printArray(arr);
                    //数组排序
                    //bubbleSort(arr);
                    selectSort(arr);
                    
                    
                    //打印排序后的数组
                    printArray(arr);
            }

            //数组排序方法(选择排序)
            private static void selectSort(int[] arr) {
                    //外循环控制循环的次数
                    for (int i = 0; i < arr.length-1; i++) {
                            //i=0,1,2,3
                            //内循环控制参与比较的元素
                            //int j=i+1 避免重复比较
                            for (int j = i+1; j < arr.length; j++) {
                                    //arr[i] 与arr[j]
                                    //arr[0] 与 arr[1]
                                    //arr[0] 与 arr[2]
                                    //arr[0] 与 arr[3]
                                    //arr[0] 与 arr[4]
                                    if (arr[i] > arr[j]) {
                                            int temp = arr[i];
                                            arr[i] = arr[j];
                                            arr[j] = temp;
                                    }
                            }
                    }
            
            }

            //打印数组
            private static void printArray(int[] arr) {
                    System.out.print("[");
                    for (int i = 0; i < arr.length; i++) {
                            if (i == arr.length -1) {
                                    System.out.println(arr[i] + "]");
                            } else {
                                    System.out.print(arr[i] + ", ");
                            }
                    }
            }

            //数组排序方法(冒泡排序)
            private static void bubbleSort(int[] arr) {
                    //外层循环用来控制循环的次数
                    for (int i = 0; i < arr.length-1; i++) {
                            //i=0,1,2,3
                            //内循环控制参与比较的元素
                            // j<arr.length-1 为了防止角标越界
                            // j<arr.length-1-i, 为了避免重复比较
                            for (int j = 0; j < arr.length-1-i; j++) {
                                    //arr[j] 与 arr[j+1]比较,大的放后面
                                    //j=0,  arr[0]与arr[1]
                                    //j=1,  arr[1]与arr[2]
                                    //j=2,  arr[2]与arr[3]
                                    //j=3,  arr[3]与arr[4]
                                    if (arr[j] > arr[j+1]) {
                                            int temp = arr[j];
                                            arr[j] = arr[j+1];
                                            arr[j+1] = temp;
                                    }
                            }
                    }
            }
    }

  • 相关阅读:
    textRNN & textCNN的网络结构与代码实现!
    四步理解GloVe!(附代码实现)
    NLP系列文章:子词嵌入(fastText)的理解!(附代码)
    自然语言处理(NLP)的一般处理流程!
    强化学习(Reinforcement Learning)中的Q-Learning、DQN,面试看这篇就够了!
    迁移学习(Transfer),面试看这些就够了!(附代码)
    白话--长短期记忆(LSTM)的几个步骤,附代码!
    三步理解--门控循环单元(GRU),TensorFlow实现
    Django框架1——视图和URL配置
    os模块
  • 原文地址:https://www.cnblogs.com/AJPFX/p/10816303.html
Copyright © 2020-2023  润新知