Advertisement
Guest User

Untitled

a guest
Mar 21st, 2019
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.11 KB | None | 0 0
  1. #!/usr/bin/env perl
  2.  
  3. use strict;
  4. use warnings;
  5. use feature 'say';
  6.  
  7. use DDP { deparse => 1 };
  8.  
  9. my $time = time;
  10. my @seeds;
  11. for (1..100){
  12. push(@seeds, int(rand(100)));
  13. }
  14. #p @seeds;
  15.  
  16. for my $i (reverse(1..5)){
  17. my $group_index = [];
  18. my $size = scalar @seeds;
  19. for my $j (0..($i - 1)){
  20. my $k = $j;
  21. my $index = [];
  22. while ($k <= ($size - 1)){
  23. push (@$index, $k);
  24. $k += $i;
  25. }
  26. push(@$group_index, $index);
  27. }
  28.  
  29. for my $group (@$group_index){
  30. bubble_sort(\@seeds, $group);
  31. };
  32. }
  33.  
  34. #p @seeds;
  35. sub bubble_sort{
  36. my $seeds_refs = shift;
  37. my $index_refs = shift;
  38. my $size = scalar @$index_refs;
  39. for my $i (reverse(0..($size - 2))){
  40. for my $j (0..$i){
  41. my $now_index = $index_refs->[$j];
  42. my $next_index = $index_refs->[$j + 1];
  43. if ($seeds_refs->[$now_index] > $seeds_refs->[$next_index]){
  44. my $tmp = $seeds_refs->[$now_index];
  45. $seeds_refs->[$now_index] = $seeds_refs->[$next_index];
  46. $seeds_refs->[$next_index] = $tmp;
  47. }
  48. }
  49. }
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement