Fixed quick sort and added top 5

This commit is contained in:
K 2023-10-16 19:30:05 +05:30
parent c14ce1a405
commit 9b44a5dfc6
Signed by: notkshitij
GPG Key ID: C5B8BC7530F8F43F

View File

@ -1,39 +1,31 @@
no = int(input("Enter number of students: ")) # Function for quick sort:
list2 = [] def quicksort(arr):
if len(arr) <= 1:
return arr
for i in range(0,no): pivot = arr[len(arr) // 2]
n = float(input("Enter % of student: ")) left = [x for x in arr if x < pivot]
list2.append(n) middle = [x for x in arr if x == pivot]
print(list2) right = [x for x in arr if x > pivot]
d = len(list2) return quicksort(left) + middle + quicksort(right)
def partition(list3, low, high): # Function for displaying top scores:
i = low - 1 def top5(arr):
pivot = list3[high] sorted_arr = quicksort(arr)
top_scores = sorted_arr[-5:][::-1]
return top_scores
for j in range(low, high): # Defining main function:
if list3[j] < pivot: def main():
i += 1 total=int(input("Total number of students are:\t"))
list3[i], list3[j] = list3[j], list3[i] percent=[]
for i in range(total):
list3[i + 1], list3[high] = list3[high], list3[i + 1] percent_in=float(input(f"Enter percentage for student {i+1}:\t"))
return i + 1 percent.append(percent_in)
print(f"\nPercentages of students are:\t {percent}")
def quicksort(list1, low, high): print(f"\n------------------\nSorted marks (using quick sort algorithm):\t{quicksort(percent)}\n------------------")
if low < high: print(f"\n------------------\nTop five scores are:\t{top5(percent)}\n------------------\n")
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)
# Calling main function:
main()