That has a paragraph about a main subject and is set when the ‘=’ is at least the same length of the title itself.
This is the basic method i should master, the top-down merge_sort implementation:
def merge_sort(nums): def merge(leftnums, rightnums): i,j = 0,0 res =  while(i<len(leftnums) and j <len(rightnums)): if leftnums[i]<rightnums[j]: res.append(leftnums[i]) i += 1 else: res.append(rightnums[j]) j += 1 while(i<len(leftnums)): res.append(leftnums[i]) i += 1 while (j < len(rightnums)): res.append(rightnums[j]) j += 1 return res if len(nums)==1: return nums mid = len(nums)/2 leftnums = merge_sort(nums[:mid]) rightnums = merge_sort(nums[mid:]) return merge(leftnums, rightnums) i write megersort, buble sort, insertion sort and selection sort today. however, computer crashes!!! damn!
This function takes last element as pivot, places the pivot element at its correct position in sorted array, and places all smaller (smaller than pivot) to left of pivot and all greater elements to right of pivot.
def partition(arr,low,high): i = ( low-1 ) # index of smaller element pivot = arr[high] # pivot for j in range(low , high): # If current element is smaller than or # equal to pivot if arr[j] <= pivot: # increment index of smaller element i = i+1 arr[i],arr[j] = arr[j],arr[i] arr[i+1],arr[high] = arr[high],arr[i+1] return i+1 # The main function that implements QuickSort # arr --> Array to be sorted, # low --> Starting index, # high --> Ending index # Function to do Quick sort def quickSort(arr,low,high): if low < high: # pi is partitioning index, arr[p] is now # at right place pi = partition(arr,low,high) # Separately sort elements before # partition and after partition quickSort(arr, low, pi-1) quickSort(arr, pi+1, high)