diff --git a/assignment-16.py b/assignment-16.py index 0299b09..ce389b0 100644 --- a/assignment-16.py +++ b/assignment-16.py @@ -1,31 +1,50 @@ +# BEGINNING OF CODE # Function for quick sort: -def quicksort(arr): - if len(arr) <= 1: +def quickSort(arr): + if len(arr) <= 1: # if array is empty array return arr - pivot = arr[len(arr) // 2] + pivot = arr[len(arr) // 2] # Set pivot element + 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] + ''' + ## ALTERNATIVE WAY OF WRITING THE UPPER 3 LINES (for easy understanding) + left = [] # Empty list to store left part + for i in arr: + if (i < pivot): + left.append(i) + middle = [] # Empty list to store middle element + for i in arr: + if (i == pivot): + middle.append(i) + right = [] # Empty list to store right part + for i in arr: + if (i > pivot): + right.append(i) + ''' - return quicksort(left) + middle + quicksort(right) + 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 + top_scores = quickSort(arr) + return top_scores[-1:-6:-1] # Defining main function: def main(): - total=int(input("Total number of students are:\t")) - percent=[] + percent = [] # List to store percentages + + total = int(input("Total number of students are:\t")) # Input for total students for i in range(total): - percent_in=float(input(f"Enter percentage for student {i+1}:\t")) + 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") + + print(f"-----\nPercentages of students are:\t {percent}\n-----") + print(f"\n-----\nSorted marks (using quick sort algorithm):\t{quickSort(percent)}\n-----") + print(f"\n-----\nTop five scores are:\t{top5(percent)}\n-----") # Calling main function: main() +# END OF CODE \ No newline at end of file