DEV Community

Luckshvadhan B
Luckshvadhan B

Posted on

Sorting

Bubble Sort

Approach:
Compare adjacent swap if needed repeat

Code:
def bubbleSort(arr):
for i in range(len(arr)):
for j in range(len(arr)-i-1):
if arr[j]>arr[j+1]:
arr[j],arr[j+1]=arr[j+1],arr[j]

Limitation
Very slow

Selection Sort

Approach
Find minimum swap with front repeat

Code:
def selectionSort(arr):
for i in range(len(arr)):
min_i=i
for j in range(i+1,len(arr)):
if arr[j]<arr[min_i]:
min_i=j
arr[i],arr[min_i]=arr[min_i],arr[i]

Limitation
Always takes same time

Merge Sort

Approach
Divide,sort and merge

Code:
def mergeSort(arr):
if len(arr)>1:
mid=len(arr)//2
left=arr[:mid]
right=arr[mid:]
mergeSort(left)
mergeSort(right)
i=j=k=0
while i<len(left) and j<len(right):
if left[i]<right[j]:
arr[k]=left[i]
i+=1
else:
arr[k]=right[j]
j+=1
k+=1
while i<len(left):
arr[k]=left[i]
i+=1
k+=1
while j<len(right):
arr[k]=right[j]
j+=1
k+=1

Limitation
Uses extra space

Conclusion
Bubble and selection is simple
merge is better for large data

Top comments (0)