diff --git a/all-sorting-algorithms (selection, bubble, quick).py b/all-sorting-algorithms (selection, bubble, quick).py new file mode 100644 index 0000000..50e57c3 --- /dev/null +++ b/all-sorting-algorithms (selection, bubble, quick).py @@ -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() +