Advertisement
Guest User

Untitled

a guest
Jul 31st, 2015
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.67 KB | None | 0 0
  1. class Array
  2. protected
  3. attr_accessor :matrix
  4.  
  5. public
  6. def sort_with_matrix
  7. item_with_index = self.map.with_index { |item,i| [item,i] }
  8. item_with_index.sort_by! { |item,i| item }
  9. new_array = []
  10. matrix = []
  11. item_with_index.each do |item,i|
  12. new_array << item
  13. matrix << i
  14. end
  15. new_array.matrix = matrix
  16. return new_array
  17. end
  18.  
  19. def sort_with_matrix!
  20. new_array = self.sort_with_matrix
  21. self.replace(new_array)
  22. @matrix = new_array.matrix
  23. return self
  24. end
  25.  
  26. def unsort
  27. new_array = []
  28. @matrix.each_with_index do |j,i|
  29. new_array[j] = self[i]
  30. end
  31. @matrix = []
  32. return new_array
  33. end
  34.  
  35. def unsort!
  36. self.replace(self.unsort)
  37. @matrix = []
  38. self
  39. end
  40. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement