Fixed quick sort
This commit is contained in:
parent
0ad0dc13b9
commit
c14ce1a405
@ -1,6 +1,6 @@
|
||||
no = int(input("Enter number of students: "))
|
||||
list2 = []
|
||||
#list1 = []
|
||||
|
||||
for i in range(0,no):
|
||||
n = float(input("Enter % of student: "))
|
||||
list2.append(n)
|
||||
@ -8,31 +8,32 @@ print(list2)
|
||||
|
||||
d = len(list2)
|
||||
|
||||
def partition(list3,a,b):
|
||||
v = list3[a]
|
||||
i = a
|
||||
j = b-1
|
||||
temp = 0
|
||||
while(i<j):
|
||||
while(list3[i]<=v and i<=j):
|
||||
i = i + 1
|
||||
while(list3[j] > v):
|
||||
j = j - 1
|
||||
if(i<j):
|
||||
temp = list3[i]
|
||||
list3[i] = list3[j]
|
||||
list3[j] = temp
|
||||
list3[a] = list3[j]
|
||||
list3[j] = v
|
||||
return j
|
||||
def partition(list3, low, high):
|
||||
i = low - 1
|
||||
pivot = list3[high]
|
||||
|
||||
for j in range(low, high):
|
||||
if list3[j] < pivot:
|
||||
i += 1
|
||||
list3[i], list3[j] = list3[j], list3[i]
|
||||
|
||||
list3[i + 1], list3[high] = list3[high], list3[i + 1]
|
||||
return i + 1
|
||||
|
||||
def quicksort(list1, low, high):
|
||||
if low < high:
|
||||
pi = partition(list1, low, high)
|
||||
quicksort(list1, low, pi - 1)
|
||||
quicksort(list1, pi + 1, high)
|
||||
|
||||
no = int(input("Enter number of students: "))
|
||||
list2 = []
|
||||
|
||||
for i in range(0, no):
|
||||
n = float(input("Enter % of student: "))
|
||||
list2.append(n)
|
||||
print("Unsorted list: ", list2)
|
||||
|
||||
quicksort(list2, 0, len(list2) - 1)
|
||||
print("Sorted list: ", list2)
|
||||
|
||||
def quicksort(list1, l, u):
|
||||
j = 0
|
||||
if(l<u):
|
||||
j = partition(list1,l,u)
|
||||
quicksort(list1,l,j - 1)
|
||||
quicksort(list1,j+1,u)
|
||||
list2 = list1
|
||||
return list2
|
||||
o = quicksort(list2,0,d)
|
||||
print("Sorted list is: ",o)
|
Loading…
Reference in New Issue
Block a user