vlambda博客
学习文章列表

Perl算法实例---插入排序

在日常操作计算中, 我们经常需要将数组进行排列, 根据数据的不同以及需求的不同, 我们有很多种不同的排序方法。 

今天我们介绍插入排序, 对于少量数据的排序, 他是一种比较有效的可以接受的算法。

插入排序就是我们依次处理数组中的数据, 每个数据依次和他前方的数来进行比较, 知道找到合适该数的位置, 则将其插入进去。 过程就像我们整理扑克手牌一样。

插入排序很容易理解, 也很容易实现。其时间复杂度为O(n^2), 在数据量不大的情况下, 是可以接受的。

以下是用perl来实现插入排序的实例:

我们从第二个元素开始, 每次和其前方的一个元素进行比较, 如小于, 则互换位置, 继续和前方比较, 直至比前面元素大, 此时即可插入该元素

my @nums = (4,2,9,7,8,1,3);for my $i (1..@nums - 1){ my $num = $nums[$i];  my $index = $i - 1; while ($index >= 0 and $nums[$index] > $num){ $nums[$index + 1] = $nums[$index]; $index--; }  $nums[$index + 1] = $num;}