• 排序——选择排序


     1 /*
     2  * 选择排序:
     3  *         选择排序比冒泡排序的效率高。
     4  *         高在交换位置的次数上。
     5  *         选择排序的交换位置是有意义的。
     6  *     循环一次,然后找出参加比较的这堆数据中最小的,拿着这个最小的值和最前面的数据“交换位置”。
     7  *     参与比较的数据:3 1 6 2 5(这一堆参加比较的数据中最左边的元素下标是0)
     8  *     第一次循环后的结果是:1 3 6 2 5
     9  *     参与比较的数据:3 6 2 5(这一堆参加比较的数据中最左边的元素下标是1,下标是0的那个元素是1)
    10  *     第二次循环后的结果是:2 6 3 5
    11  *     参与比较的数据:6 3 5(这一堆参加比较的数据中最左边的元素下标是2)
    12  *     第三次循环后的结果是3 6 5
    13  *     参与比较的数据:6 5(这一堆参加比较的数据中最左边的元素下标是3)
    14  *     第四次循环后的结果是:5 6
    15  *     完成! 5条数据,循环四次
    16  */
    17 public class Test03 {
    18     public static void main(String[] args) {
    19         // 定义排序数组
    20         int[] arr = { 3, 1, 6, 2, 5 };
    21         for (int i = 0; i < arr.length - 1; i++) {
    22             // 假设下标是0的数的值是最小的,也就是说第一个数就是最小的
    23             int min = i;
    24             // for循环进行判断,判断猜测是否正确
    25             for (int j = i + 1; j < arr.length; j++) {
    26                 // 第二个数跟第一个数比较,如果第二个数更小,那第二个数的下标就是0,以此类推。
    27                 if (arr[j] < arr[min]) {
    28                     min = j;
    29                 }
    30             }
    31             // min是最小数的下标,如果第一个数不是最小的,就进行交换
    32             if (min != i) {
    33                 int temp;
    34                 temp = arr[min];
    35                 arr[min] = arr[i];
    36                 arr[i] = temp;
    37             }
    38         }
    39         for (int i = 0; i < arr.length; i++) {
    40             System.out.println(arr[i]);
    41         }
    42     }
    43 
    44 }
  • 相关阅读:
    WebServices Get
    字符出现次数
    正则
    防止AutoPost
    转双问号,单问号
    GetData
    UpdatePanel
    字居中
    C# 面向对象之多态
    C# 委托之把委托从委托链(多播委托)移除
  • 原文地址:https://www.cnblogs.com/HeSC980513/p/12931485.html
Copyright © 2020-2023  润新知