Advertisement
Guest User

Untitled

a guest
Nov 21st, 2014
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.20 KB | None | 0 0
  1. def MargeSort(head):
  2.  
  3. if head == None or head.getNext() == None:
  4. return head
  5.  
  6. midnode=middleNode(head)
  7. secondhalf=midnode.getNext()
  8. midnode.setNext(None)
  9.  
  10. return marge(MargeSort(head),MargeSort(secondhalf))
  11.  
  12. def marge(firsthalf,secondhalf):
  13. news=Node()
  14. # prst=news
  15. news.setData(firsthalf.getData())
  16. while firsthalf!=None:
  17. print "first half",firsthalf.getData()
  18. news.setNext(firsthalf)
  19. firsthalf=firsthalf.getNext()
  20. while secondhalf!=None:
  21. print "second half", secondhalf.getData()
  22. news.setNext(secondhalf)
  23. secondhalf=secondhalf.getNext()
  24. print "------------------------MERGED-------------------------"
  25. #current=Node()
  26. #sort=current
  27. # #print sort.getNext()
  28. #while firsthalf !=None and secondhalf!=None:
  29. # if firsthalf.getData() < secondhalf.getData():
  30. # current.setNext(firsthalf)
  31. # firsthalf=firsthalf.getNext()
  32. # else:
  33. # current.setNext(secondhalf)
  34. # secondhalf=secondhalf.getNext()
  35. #if firsthalf==None:
  36. # while secondhalf!=None:
  37. # current.setNext(secondhalf)
  38. # secondhalf=secondhalf.getNext()
  39.  
  40. # else:
  41. # while firsthalf!=None:
  42. # current.setNext(firsthalf)
  43. # firsthalf=firsthalf.getNext()
  44. return news
  45.  
  46. def middleNode(node):
  47. if node==None:
  48. return node
  49. mid=node
  50. end=node
  51. while end.getNext()!=None and mid.getNext()!=None and (end.getNext()).getNext()!=None:
  52. mid=mid.getNext()
  53. end=(end.getNext()).getNext()
  54.  
  55. return mid
  56.  
  57. ----------------------------------------------
  58. first half 9
  59. second half 5
  60. ------------------------MERGED-------------------------
  61. first half 9
  62. first half 5
  63. second half 6
  64. ------------------------MERGED-------------------------
  65. first half 7
  66. second half -9
  67. ------------------------MERGED-------------------------
  68. first half 7
  69. first half -9
  70. second half 10
  71. ------------------------MERGED-------------------------
  72. first half 9
  73. first half 6
  74. second half 7
  75. second half 10
  76. ------------------------MERGED-------------------------
  77.  
  78. Process finished with exit code 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement