Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def print_function(arr,low,high):
- for i in range(low,high+1):
- print(arr[i],end=" ")
- print()
- def partition(arr,low,high):
- pivot=high
- i=low-1
- for j in range(low,high):
- if (arr[j]<arr[pivot]):
- i=i+1
- temp=arr[i]
- arr[i]=arr[j]
- arr[j]=temp
- temp=arr[i+1]
- arr[i+1]=arr[pivot]
- arr[pivot]=temp
- print_function(arr,0,len(arr)-1)
- return i+1
- def InsertionSort(arr,low,high):
- for i in range(low+1,high+1):
- var=i
- for j in range(i-1,-1,-1):
- if(arr[var]<arr[j]):
- temp=arr[j]
- arr[j]=arr[var]
- arr[var]=temp
- var=j
- #print_function(arr,0,len(arr)-1)
- return
- def QuickSort(arr,low,high):
- global T
- if(low<high):
- p=partition(arr,low,high)
- l1=p-low
- l2=high-p
- if(l2<T and l2!=0):
- #print_function(arr,0,len(arr)-1)
- InsertionSort(arr,p+1,high)
- if (l1<T and l1!=0):
- #print_function(arr,0,len(arr)-1)
- InsertionSort(arr,low,p-1)
- if(l2>=T):
- #print_function(arr,0,len(arr)-1)
- QuickSort(arr,p+1,high)
- if(l1>=T ):
- #print_function(arr,0,len(arr)-1)
- QuickSort(arr,low,p-1)
- return
- A=list(map(int,input().split()))
- N=A[0]
- global T
- T=A[1]
- arr=[A[i+2] for i in range(0,N)]
- low=0
- high=len(arr)-1
- if(high-low+1<T):
- InsertionSort(arr,low,high)
- else:
- QuickSort(arr,low,high)
- print_function(arr,low,high)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement