Sorting
Sorting
if isSorted :
print("Array is already sorted")
break
def bubbleSort(arr):
for i in range(len(arr)-1, 0 , -1):
for j in range(i):
if(arr[j]>arr[j+1]):
arr[j],arr[j+1] = arr[j+1],arr[j]
def bubbleSortOptimized(arr):
for i in range(len(arr)-1, 0 , -1):
isSorted = True
for j in range(i):
if(arr[j]>arr[j+1]):
isSorted = False
arr[j],arr[j+1] = arr[j+1],arr[j]
if isSorted :
print("Array is already sorted")
break
def isSorted(arr):
isSorted = True
for i in range(len(arr)-1):
if arr[i]>arr[i+1]:
isSorted = False
break
if isSorted :
print("Array is sorted")
else :
print("Array is not sorted")
#Selection Sorting
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
#Find the smallest values
arr[i],arr[min] = arr[min],arr[i]
#Selection Sorting
def selectionSort(arr): def bubbleSort(arr):
for i in range(len(arr)):
for i in range(len(arr)-1, 0 , -1):
min =i
for j in range(i+1,len(arr)): for j in range(i):
if arr[j] <arr[min]: if(arr[j]>arr[j+1]):
min =j arr[j],arr[j+1] = arr[j+1],arr[j]
#Find the smallest values
arr[i],arr[min] = arr[min],arr[i]
#Selection Sorting
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
#Find the smallest values
arr[i],arr[min] = arr[min],arr[i]
def insertion_sort(arr):
for i in range(1,len(arr)):
v = arr[i]
j=i
while(j>=1 and arr[j-1]>v):
arr[j]=arr[j-1]
j-=1
arr[j]=v
def insertion_sort(arr):
for i in range(1,len(arr)):
v = arr[i]
j=i
while(j>=1 and arr[j-1]>v):
arr[j]=arr[j-1]
j-=1
arr[j]=v
def insertion_sort(arr):
for i in range(1,len(arr)): #Selection Sorting
v = arr[i] def selectionSort(arr):
j=i for i in range(len(arr)):
def bubbleSort(arr):
while(j>=1 and arr[j-1]>v): for i in range(len(arr)-1, 0 , -1):
min =i for j in range(i):
arr[j]=arr[j-1] for j in range(i+1,len(arr)): if(arr[j]>arr[j+1]):
j-=1 if arr[j] <arr[min]: arr[j],arr[j+1] = arr[j+1],arr[j]
arr[j]=v min =j
#Find the smallest values
arr[i],arr[min] = arr[min],arr[i]
def search(arr, num):
for i in range(len(arr)):
if arr[i]==num:
return i
return -1
if we use
def search(arr,num):
if num in arr:
return 1
else:
return -1
#mid = (left + right)/2
mid = left + (right-left)/2
def binarySearch(arr, num):
left = 0
right = len(arr) -1
while(left <=right):
mid = int(left + (right-left)/2)
if arr[mid] == num:
return mid
elif arr[mid] > num :
right = mid-1
else :
left = mid+1
return -1
def binarySearch(arr, num):
left = 0
right = len(arr) -1
while(left <=right):
mid = int(left + (right-left)/2)
if arr[mid] == num:
return mid
elif arr[mid] > num :
right = mid-1
else :
left = mid+1
return -1