All Sorting Algorithm Implementation in Python

Sorting Algorithm Implementation in Python



Here you can find all Implementation of sorting algorithms in python which sorts the array in Increasing Order (Ascending Order).

  • Bubble sort:
  • Insertion sort:
  • Selection sort:
  • Merge sort:

Bubble Sort:

Implementation:

# python implementation of Bubble sort

# Bubble Sort function
def bubble_sort(arrn):
    # iterate i from 0 to n-1
    for i in range(n):
        # variable for checking if swap is done or not
        swapped = 0
        # iterate j form 0 to n-2
        for j in range(n-1):
            # compare two neighbors at j index
            if arr[j] > arr[j + 1]:
                # if first is greater than second then swap element
                # swapping
                arr[j], arr[j+1] = arr[j+1], arr[j]
                # swapping is done
                swapped = 1

        # if swapping is not done then arr is sorted
        # then return function to break for loop
        if swapped == 0:
            return


# Driver code:
arr = [1589203234065631235]
n = len(arr)
bubble_sort(arr, n)

# printing sorted array
print("sorted array")
for i in range(n):
    print(arr[i], end=' ')
print()

Output:

sorted array:
0 0 1 1 2 3 4 5 5 6 8 9 23 65 323

Insertion Sort:

Implementation:

# python implementation of insertion sort

# insertion sort function
def insertion_sort(arrn):
    # iterate i form 1 to n-1
    for i in range(1, n):
        # here arr[0...i-1] is sorted in every iteration

        # key which we will inserting
        key = arr[i]

        # point to last element of sorted array
        j = i - 1

        # shift elements greater than key
        while j >= 0 and arr[j] > key:
            arr[j + 1] = arr[j]
            j -= 1
        # please key element to appropriate please
        arr[j + 1] = key


# Driver code:
arr = [1589265631235]
n = len(arr)
insertion_sort(arr, n)

# printing sorted array
print("sorted array")
for i in range(n):
    print(arr[i], end=' ')
print()

Output:

sorted array:
1 1 2 3 5 5 6 8 9 23 65

Selection Sort:

Implementation:

# python implementation of selection sort

# selection sort function
def selection_sort(arrn):
    # iterate i from 0 to n-2
    for i in range(n-1):
        # consider arr[i...n] array
        min_index = i
        # find min element index
        for j in range(i + 1, n):
            if arr[min_index] > arr[j]:
                min_index = j

        # swapping min element with first element for array.
        arr[i], arr[min_index] = arr[min_index], arr[i]


# Driver code:
arr = [158926789599999631235]
n = len(arr)
selection_sort(arr, n)

# printing sorted array
print("sorted array")
for i in range(n):
    print(arr[i], end=' ')
print()

Output:

sorted array:
1 1 2 3 5 5 6 8 9 23 67895 99999

Merge Sort:

Implementation:

# python program for merge sort

# Merge to subarray of array
# first_array = array[start..mid]
# second_array = array[mid+1..end]
def Merge(arraystartmidend):
    # creating to temp subarray
    first_array = []
    second_array = []

    # copy first_array
    for i in range(start, mid+1):
        first_array.append(array[i])

    # copy second_array
    for i in range(mid + 1, end+1):
        second_array.append(array[i])

    # index reference
    i = 0                        # for first_array
    j = 0                        # for second_array
    main_i = start               # for main array
    size_1 = len(first_array)    # size of first_array
    size_2 = len(second_array)   # size of second_array

    # merge subarray first_array and second_array into array[start..end]
    while i < size_1 and j < size_2:
        if first_array[i] <= second_array[j]:
            array[main_i] = first_array[i]
            i += 1
        else:
            array[main_i] = second_array[j]
            j += 1
        main_i += 1

    # copy remaining element of first_array
    while i < size_1:
        array[main_i] = first_array[i]
        i += 1
        main_i += 1

    # copy remaining element of second_array
    while j < size_2:
        array[main_i] = second_array[j]
        j += 1
        main_i += 1

# main merge Sort function


def mergeSort(arraystartend):
    if start >= end:
        return

    # finding mid point
    mid = start + (end - start) // 2
    # divide
    mergeSort(array, start, mid)
    mergeSort(array, mid + 1, end)

    # conquer
    Merge(array, start, mid, end)


# driver code
# declaring  array
array = [11254789563214]
n = len(array)
mergeSort(array, 0, n - 1)
# array is sorted

print("sorted array:")
for i in range(n):
    print(array[i], end=' ')
print()

Output:

sorted array:
1 1 2 3 4 4 5 5 6 9 12 78


Image of code:
  • Bubble sort:
bubble sort in python
  • Insertion sort:
insertion sort in python


  • Selection sort:
selection sort in python


  • Merge sort:
merge sort in python



Post a Comment

0 Comments