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;
}