Skip to content

Instantly share code, notes, and snippets.

@sllvn
Created February 20, 2013 02:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sllvn/4992172 to your computer and use it in GitHub Desktop.
Save sllvn/4992172 to your computer and use it in GitHub Desktop.
unsorted = %w{11 17 2 200 201 205 209 21 213 217 218 220 223 227 228 232 240 248 2X 3 307 313 320 33 35 354 35M 39 41 45 451 453 454 455 456 460 461 462 463 47 470 471 472 473 477 500 501 509 513 516 517 519 520 523 525 527 534 54 550 6 603 604 606 608 612 613 616 62 625 626 627 630 640 645 667 670 675 701 703 704 72 750 805 806 807 809 811 821 822 830 831 832 833 834 836 842 850 853 862 880 9 901 902 919 920 951 952 954 960 962 990 992 F400 F401 F514 F518 F546 F547 F556 F570 F578 F590 F618 F628 F638 F868 F94}
sorted = %w{2 2X 3 6 9 11 17 21 33 35 35M 39 41 45 47 54 62 72 200 201 205 209 213 217 218 220 223 227 228 232 240 248 307 313 320 354 451 453 454 455 456 460 461 462 463 470 471 472 473 477 500 501 509 513 516 517 519 520 523 525 527 534 550 603 604 606 608 612 613 616 625 626 627 630 640 645 667 670 675 701 703 704 750 805 806 807 809 811 821 822 830 831 832 833 834 836 842 850 853 862 880 901 902 919 920 951 952 954 960 962 990 992 F400 F401 F514 F518 F546 F547 F556 F570 F578 F590 F618 F628 F638 F868 F94}
sort_attempt = unsorted.sort { |x, y| [x.index(/\D/) == 0 ? 1 : 0, x.to_i, x] <=> [y.index(/\D/) == 0 ? 1 : 0, y.to_i, y] }
if sorted == sort_attempt
puts "Successful sort"
else
puts "Bad sort"
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment