From c1e76a1ad13ba12756d04382e24c5c69cd86fb55 Mon Sep 17 00:00:00 2001 From: Aayush Kumar Rana Date: Wed, 23 Oct 2019 15:43:17 +0530 Subject: [PATCH 1/2] sorting in python --- Sort/Readme.md | 4 ++++ Sort/mergesort.py | 36 ++++++++++++++++++++++++++++++++++++ Sort/quicksort.py | 13 +++++++++++++ Sort/selection_sort.py | 15 +++++++++++++++ 4 files changed, 68 insertions(+) create mode 100644 Sort/Readme.md create mode 100644 Sort/mergesort.py create mode 100644 Sort/quicksort.py create mode 100644 Sort/selection_sort.py diff --git a/Sort/Readme.md b/Sort/Readme.md new file mode 100644 index 0000000..7773bc1 --- /dev/null +++ b/Sort/Readme.md @@ -0,0 +1,4 @@ +Python Program for Sorting:: +-quick sort +-merge sort +-selection sort \ No newline at end of file diff --git a/Sort/mergesort.py b/Sort/mergesort.py new file mode 100644 index 0000000..4c8e5b6 --- /dev/null +++ b/Sort/mergesort.py @@ -0,0 +1,36 @@ +def mergeSort(alist): + print("Splitting ",alist) + if len(alist)>1: + mid = len(alist)//2 + lefthalf = alist[:mid] + righthalf = alist[mid:] + + mergeSort(lefthalf) + mergeSort(righthalf) + + i=0 + j=0 + k=0 + while i < len(lefthalf) and j < len(righthalf): + if lefthalf[i] < righthalf[j]: + alist[k]=lefthalf[i] + i=i+1 + else: + alist[k]=righthalf[j] + j=j+1 + k=k+1 + + while i < len(lefthalf): + alist[k]=lefthalf[i] + i=i+1 + k=k+1 + + while j < len(righthalf): + alist[k]=righthalf[j] + j=j+1 + k=k+1 + print("Merging ",alist) + +list_of_elem = [54,26,93,17,77,31,44,55,20] +mergeSort(list_of_elem) +print(list_of_elem) diff --git a/Sort/quicksort.py b/Sort/quicksort.py new file mode 100644 index 0000000..8579e51 --- /dev/null +++ b/Sort/quicksort.py @@ -0,0 +1,13 @@ +def quicksort(arr): + less = [] + equal = [] + greater = [] + + if len(array) > 1: + pivot = array[-1] + for x in array: + if x < pivot: less.append(x) + if x == pivot: equal.append(x) + if x > pivot: greater.append(x) + + return quicksort(less) + equal + quicksort(greater) diff --git a/Sort/selection_sort.py b/Sort/selection_sort.py new file mode 100644 index 0000000..39939ba --- /dev/null +++ b/Sort/selection_sort.py @@ -0,0 +1,15 @@ +#Time complexity O(n^2) Space complexity O(n) + +def selection_sort(arr): + for i in range(len(arr)): + position_of_max = i + for j in range(i+1,len(arr)): + if arr[j]>arr[position_of_max]: + position_of_max = j + temp = arr[i] + arr[i] = arr[position_of_max] + arr[position_of_max] = temp + return arr + +arr = [13,4,12,1,5] +print selection_sort(arr) From 3da7fd5308e4f0b735a61a69b8b1ff8be3d66e5c Mon Sep 17 00:00:00 2001 From: Aayush Kumar Rana <47885963+aayushakrrana@users.noreply.github.com> Date: Wed, 23 Oct 2019 15:55:20 +0530 Subject: [PATCH 2/2] Update Readme.md --- Sort/Readme.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Sort/Readme.md b/Sort/Readme.md index 7773bc1..90f6a6f 100644 --- a/Sort/Readme.md +++ b/Sort/Readme.md @@ -1,4 +1,2 @@ -Python Program for Sorting:: --quick sort --merge sort --selection sort \ No newline at end of file +username: aayushakrrana +fullname: AAYUSH KUMAR RANA