0% found this document useful (0 votes)
46 views

Lab 3 Report: Program

The document describes 4 Python programs that implement different sorting algorithms: insertion sort, insertion sort with ascending order, merge sort, and selection sort. It includes the code for each algorithm, sample input data, and the output showing that the algorithms correctly sorted the data in the specified order.

Uploaded by

Tej MASKARE
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
46 views

Lab 3 Report: Program

The document describes 4 Python programs that implement different sorting algorithms: insertion sort, insertion sort with ascending order, merge sort, and selection sort. It includes the code for each algorithm, sample input data, and the output showing that the algorithms correctly sorted the data in the specified order.

Uploaded by

Tej MASKARE
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 6

College of Engineering, Pune

Dept. of Electronics and Telecommunication Engineering

Course : R PYTHON Lab


Year : 2021

Lab 3 Report :

Program:

# Insertion sort in Python

def insertionSort(array):

for step in range(1, len(array)):


key = array[step]
j = step - 1
# Compare key with each element on the left of it until an element
smaller than it is found
# For descending order, change key<array[j] to key>array[j].
while j <= 0 and key > array[j]:
array[j + 1] = array[j]
j=j-1
# Place key at after the element just smaller than it.
array[j + 1] = key

data = [9, 5, 1, 4, 3]
insertionSort(data)
print('Sorted Array in Descending Order:')
print(data)

Output:

Sorted Array in Descending Order:


[9, 5, 1, 4, 3]

Program:
# Insertion sort in Python

def insertionSort(array):

for step in range(1, len(array)):


key = array[step]
j = step - 1
# Compare key with each element on the left of it until an element
smaller than it is found
# For descending order, change key<array[j] to key>array[j].
while j >= 0 and key < array[j]:
array[j + 1] = array[j]
j=j-1
# Place key at after the element just smaller than it.
array[j + 1] = key

data = [9, 5, 1, 4, 3]
insertionSort(data)
print('Sorted Array in Ascending Order:')
print(data)

Output:

Sorted Array in Ascending Order:


[1, 3, 4, 5, 9]

Program:

# MergeSort in Python
def mergeSort(array):
if len(array) > 1:

# r is the point where the array is divided into two subarrays


r = len(array)//2
L = array[:r]
M = array[r:]

# Sort the two halves


mergeSort(L)
mergeSort(M)

i=j=k=0

# Until we reach either end of either L or M, pick larger among


# elements L and M and place them in the correct position at A[p..r]
while i < len(L) and j < len(M):
if L[i] < M[j]:
array[k] = L[i]
i += 1
else:
array[k] = M[j]
j += 1
k += 1

# When we run out of elements in either L or M,


# pick up the remaining elements and put in A[p..r]
while i < len(L):
array[k] = L[i]
i += 1
k += 1

while j < len(M):


array[k] = M[j]
j += 1
k += 1

# Print the array


def printList(array):
for i in range(len(array)):
print(array[i], end=" ")
print()

# Driver program
if __name__ == '__main__':
array = [6, 5, 12, 10, 9, 1]

mergeSort(array)

print("Sorted array is: ")


printList(array)

Output:

Sorted array is:


1 5 6 9 10 12

Program:
# Selection sort in Python
def selectionSort(array, size):
for step in range(size):
min_idx = step

for i in range(step + 1, size):


# to sort in descending order, change > to < in this line
# select the minimum element in each loop
if array[i] < array[min_idx]:
min_idx = i
# put min at the correct position
(array[step], array[min_idx]) = (array[min_idx], array[step])

data = [-2, 45, 0, 11, -9]


size = len(data)
selectionSort(data, size)
print('Sorted Array in Ascending Order:')
print(data)

Output:
Sorted Array in Ascending Order:
[-9, -2, 0, 11, 45]

You might also like