zoukankan      html  css  js  c++  java
  • 针对数组的三中排序方式:冒泡排序,选择排序,插入排序

    AVA在运用数组进行排序时,已经封装好了排序的方法:快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现。

    普通的算法包括了:

    1.冒泡法是运用遍历数组进行比较,通过不断的比较将最小值或者最大值一个一个的遍历出来。

    2.选择排序法是将数组的第一个数据作为最大或者最小的值,然后通过比较循环,输出有序的数组。

    3.插入排序是选择一个数组中的数据,通过不断的插入比较最后进行排序。下面我就将他们的实现方法一一详解供大家参考。

     1 /**
     2  * 数组排序操作
     3  * 
     4  * @author lpp
     5  * 
     6  */
     7 public class Sort {
     8     public static void main(String[] args) {
     9         int[] arr = { 5,1,4,2,6};
    10         // bubbleSort(arr);
    11         // chooseSort(arr);
    12         insertSort(arr);
    13     }
    14 
    15     // 冒泡排序
    16     public static void bubbleSort(int[] arr) {
    17         // 外层循环只控制次数,内层循环控制逻辑
    18         int temp = 0;
    19         for (int i = 0; i < arr.length; i++) {
    20             for (int j = 0; j < arr.length - i - 1; j++) {
    21                 if (arr[j] > arr[j + 1]) {
    22                     // 相互交换
    23                     temp = arr[j];
    24                     arr[j] = arr[j + 1];
    25                     arr[j + 1] = temp;
    26                 }
    27             }
    28         }
    29 
    30         // 显示
    31         for (int i : arr) {
    32             System.out.println(i);
    33         }
    34     }
    35 
    36     // 选择排序
    37     public static void chooseSort(int[] arr) {
    38         int minTemp = 0;
    39         for (int i = 0; i < arr.length - 1; i++) {
    40             for (int j = i + 1; j < arr.length; j++) {
    41                 if (arr[j] < arr[i]) {
    42                     // 交换数据
    43                     minTemp = arr[j];
    44                     arr[j] = arr[i];
    45                     arr[i] = minTemp;
    46                 }
    47             }
    48         }
    49 
    50         // 显示
    51         for (int i : arr) {
    52             System.out.println(i);
    53         }
    54     }
    55 
    56     // 插入排序{2,1,4,3}
    57     public static void insertSort(int[] arr) {
    58         // 被选择的数
    59         int select = 0;
    60         for (int i = 1; i < arr.length; i++) {
    61             //记录要被插入的数值
    62             select = arr[i];
    63             int j = 0;
    64             for (j = i; j > 0 && arr[j - 1] >= select; j--) {
    65                 //此处执行的是一个右移操作
    66                 arr[j] = arr[j - 1];
    67             }
    68             // 把小的值向前插入
    69             arr[j] = select;
    70         }
    71 
    72         // 显示
    73         for (int i : arr) {
    74             System.out.println(i);
    75         }
    76     }
    77 }
  • 相关阅读:
    POI数据类型转换
    RSA加密解密——绕过OpenSSL
    STS热部署,springboot项目中修改代码不用重新启动服务
    List || Lists
    java解析复杂json数据
    Sublime Text 3 全程详细图文原创教程
    SpringBoot外调的几种方式 || http、https配置
    JPA对原生SQL的支持
    基于UDP协议的网络编程
    基于TCP协议的网络编程
  • 原文地址:https://www.cnblogs.com/fuck1/p/5868813.html
Copyright © 2011-2022 走看看