zoukankan      html  css  js  c++  java
  • 数据结构与算法之排序(2)选择排序 ——in dart

      选择排序的算法复杂度与冒泡排序类似,其比较的时间复杂度仍然为O(N2),但减少了交换次数,交换的复杂度为O(N),相对冒泡排序提升很多。算法的核心思想是每次选出一个最小的,然后与本轮循环中的第一个进行比较,如果需要则进行交换。

     1 import 'dart:math' show Random;
     2 
     3 void main() {
     4   final seed = 100, rnd = Random(), length = 100;
     5   var list =
     6       List<int>.generate(length, (i) => rnd.nextInt(seed), growable: false);
     7   print(list);
     8   print('---------------------');
     9   selectSort(list);
    10   print(list);
    11 }
    12 
    13 void selectSort(List<int> a) {
    14   for (var i = 0; i < a.length - 1; i++) {
    15     var mi = i;
    16     for (var j = i + 1; j < a.length; j++) {
    17       if (a[j] < a[mi]) mi = j;
    18     }
    19     if (i != mi) {
    20       var t = a[i];
    21       a[i] = a[mi];
    22       a[mi] = t;
    23     }
    24   }
    25 }
  • 相关阅读:
    CF1260F
    牛客挑战赛34 A~E
    CSP-S2019游记&拆塔记
    6424. 【NOIP2019模拟2019.11.13】我的订书机之恋
    CF1257E/F
    6423. 【NOIP2019模拟11.11】画
    1222/2516. Kup
    Comet OJ
    浅析CSS定位
    css文字颜色渐变的3种实现
  • 原文地址:https://www.cnblogs.com/outerspace/p/10250911.html
Copyright © 2011-2022 走看看