Perl 怎么冒泡排序
时间: 2023-07-10 20:38:58 浏览: 52
Perl 冒泡排序可以使用嵌套循环来实现,具体代码如下:
```
sub bubble_sort {
my @arr = @_;
my $len = @arr;
for (my $i = 0; $i < $len - 1; $i++) {
for (my $j = 0; $j < $len - $i - 1; $j++) {
if ($arr[$j] > $arr[$j + 1]) {
($arr[$j], $arr[$j + 1]) = ($arr[$j + 1], $arr[$j]);
}
}
}
return @arr;
}
# 测试
my @arr = (3, 1, 5, 2, 4);
my @sorted_arr = bubble_sort(@arr);
print join(",", @sorted_arr), "\n";
```
这段代码定义了一个 bubble_sort 函数,接受一个数组作为参数,使用嵌套循环进行冒泡排序,并返回排序后的数组。在外层循环中,$i 控制比较的轮数,内层循环中,$j 控制每轮比较的次数。如果前一个元素比后一个元素大,则交换它们的位置。最后返回排好序的数组。
相关问题
perl 冒泡排序
以下是 Perl 冒泡排序的示例代码:
```
#!/usr/bin/perl
sub bubble_sort {
my @array = @_;
my $n = @array;
for (my $i = 0; $i < $n-1; $i++) {
for (my $j = 0; $j < $n-$i-1; $j++) {
if ($array[$j] > $array[$j+1]) {
($array[$j], $array[$j+1]) = ($array[$j+1], $array[$j]);
}
}
}
return @array;
}
my @unsorted_array = (3, 6, 1, 8, 4, 2, 9, 5, 7);
my @sorted_array = bubble_sort(@unsorted_array);
print "Unsorted array: @unsorted_array\n";
print "Sorted array: @sorted_array\n";
```
这段代码定义了一个名为 `bubble_sort` 的函数,该函数接受一个数组参数并返回排序后的数组。在内部,函数使用两个嵌套的循环来比较和交换元素,直到数组排序完成。最后,程序创建一个未排序的数组,调用 `bubble_sort` 函数并打印结果。
用perl写一个快速排序
好的,下面是用 Perl 实现快速排序的代码:
```perl
sub quick_sort {
my @array = @_;
return @array if @array < 2;
my $pivot = shift @array;
my @less = grep { $_ < $pivot } @array;
my @greater = grep { $_ >= $pivot } @array;
return (quick_sort(@less), $pivot, quick_sort(@greater));
}
# 测试代码
my @unsorted = (5, 3, 2, 4, 1);
my @sorted = quick_sort(@unsorted);
print "@sorted\n"; # 输出 1 2 3 4 5
```
这段代码中,我们首先判断数组的长度是否小于 2,若是,则直接返回该数组。否则,我们取出数组的第一个元素作为 pivot(基准),并将数组分成小于 pivot 和大于等于 pivot 的两部分。然后递归地对这两部分进行快速排序,并将结果合并起来返回。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)