def quickSort(data_list):

   quickSortHlp(data_list,0,len(data_list)-1)


def quickSortHlp(data_list,first,last):

   if first < last:


       splitpoint = partition(data_list,first,last)


       quickSortHlp(data_list,first,splitpoint-1)

       quickSortHlp(data_list,splitpoint+1,last)



def partition(data_list,first,last):

   pivotvalue = data_list[first]


   leftmark = first+1

   rightmark = last


   done = False

   while not done:


       while leftmark <= rightmark and data_list[leftmark] <= pivotvalue:

           leftmark = leftmark + 1


       while data_list[rightmark] >= pivotvalue and rightmark >= leftmark:

           rightmark = rightmark -1


       if rightmark < leftmark:

           done = True

       else:

           temp = data_list[leftmark]

           data_list[leftmark] = data_list[rightmark]

           data_list[rightmark] = temp


   temp = data_list[first]

   data_list[first] = data_list[rightmark]

   data_list[rightmark] = temp



   return rightmark


data_list = [54,26,93,17,77,31,44,55,20]

quickSort(data_list)

print(data_list)


0 Comments:

Post a Comment



Newer Post Older Post Home

Blogger Template by Blogcrowds.