首页 > 编程语言 > 详细

数据结构与算法之排序(2)选择排序 ——in dart

时间:2019-01-10 16:52:32      阅读:190      评论:0      收藏:0      [点我收藏+]

  选择排序的算法复杂度与冒泡排序类似,其比较的时间复杂度仍然为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 }

 

数据结构与算法之排序(2)选择排序 ——in dart

原文:https://www.cnblogs.com/outerspace/p/10250911.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!