From 59af8b2d59ab0b26550f524250d593723de84933 Mon Sep 17 00:00:00 2001 From: Kshitij Date: Mon, 16 Oct 2023 19:32:29 +0530 Subject: [PATCH] Merged quick sort in main branch from testing --- assignment-16.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 assignment-16.py diff --git a/assignment-16.py b/assignment-16.py new file mode 100644 index 0000000..0299b09 --- /dev/null +++ b/assignment-16.py @@ -0,0 +1,31 @@ +# Function for quick sort: +def quicksort(arr): + if len(arr) <= 1: + return arr + + pivot = arr[len(arr) // 2] + left = [x for x in arr if x < pivot] + middle = [x for x in arr if x == pivot] + right = [x for x in arr if x > pivot] + + return quicksort(left) + middle + quicksort(right) + +# Function for displaying top scores: +def top5(arr): + sorted_arr = quicksort(arr) + top_scores = sorted_arr[-5:][::-1] + return top_scores + +# Defining main function: +def main(): + total=int(input("Total number of students are:\t")) + percent=[] + for i in range(total): + percent_in=float(input(f"Enter percentage for student {i+1}:\t")) + percent.append(percent_in) + print(f"\nPercentages of students are:\t {percent}") + print(f"\n------------------\nSorted marks (using quick sort algorithm):\t{quicksort(percent)}\n------------------") + print(f"\n------------------\nTop five scores are:\t{top5(percent)}\n------------------\n") + +# Calling main function: +main()