merge sort merge sort first divides the array into equal halves and then combines them in sorted manner def merge_sort(unsorted_list)if len(unsorted_list< return unsorted_list find the middle point and devide it middle len(unsorted_list/ left_list unsorted_list[:middleright_list unsorted_list[middle:left_list merge_sort(left_listright_list merge_sort(right_listreturn list(merge(left_listright_list)merge the sorted halves def merge(left_half,right_half)res [while len(left_half! and len(right_half! if left_half[ right_half[ ]res append(left_half[ ]left_half remove(left_half[ ]elseres append(right_half[ ]right_half remove(right_half[ ]if len(left_half= res res right_half elseres res left_half return res unsorted_list [ print(merge_sort(unsorted_list)