just having fun at this point with sorting algos. this file contains all sorting algos in our syllabus (selection sort, quick sort, bubble sort) and top 5 function

This commit is contained in:
K 2023-12-10 19:59:22 +05:30
parent af2ac9af01
commit 582e9aa59e
Signed by: notkshitij
GPG Key ID: C5B8BC7530F8F43F

View File

@ -0,0 +1,66 @@
# ALL SORTING ALGORITHMS
# Selection sort
def selectionSort(arr):
for i in range(len(arr)):
min = i
for j in range(i+1, len(arr)):
if (arr[j] < arr[min]):
min = j
temp = arr[i]
arr[i] = arr[min]
arr[min] = temp
print(f"-----\nSorted array (using selection sort) in ascending order is:\t{arr}\n-----\n")
def bubbleSort(arr):
for i in range(len(arr)):
for j in range(0, len(arr)-i-1):
if (arr[j] > arr[j+1]):
temp = arr[j]
arr[j] = arr[j+1]
arr[j+1] = temp
print(f"-----\nSorted array (using bubble sort) in ascending order is:\t{arr}\n-----\n")
def quickSort(arr):
if len(arr) <= 0:
return arr
pivot = arr[len(arr) // 2]
left = []
for i in arr:
if (i < pivot):
left.append(i)
middle = []
for i in arr:
if (i == pivot):
middle.append(i)
right = []
for i in arr:
if (i > pivot):
right.append(i)
return quickSort(left) + middle + quickSort(right)
def top5(arr):
top_scores = quickSort(arr)
print(f"-----\nTop five scores (sorted using quick sort) are:\t{top_scores[-1:-6:-1]}\n-----\n")
def main():
marks = []
total = int(input("Total number of students are:\t"))
for i in range(total):
percen = float(input(f"Enter percentage for student {i+1}:\t"))
marks.append(percen)
print(f"\n-----\nPercentages of {total} students are:\t{marks}\n-----")
selectionSort(marks)
bubbleSort(marks)
print(f"\n-----\nSorted array (using quick sort) in ascending order is:\t{quickSort(marks)}\n-----\n")
top5(marks)
print(marks)
# Calling main function
main()