def insertion_sort(arr):
for i in range(1,len(arr)):
key=arr[i]; j=i-1
while j>=0 and arr[j]>key:
arr[j+1]=arr[j]; j-=1
arr[j+1]=key
return arr
public int[] insertionSort(int[] arr){
for(int i=1;i<arr.length;i++){
int key=arr[i],j=i-1;
while(j>=0&&arr[j]>key){arr[j+1]=arr[j];j--;}
arr[j+1]=key;
} return arr;
}
Most similar sorting. j-=1 vs j--.
def insertion_sort(arr):
for i in range(1,len(arr)):
key=arr[i]; j=i-1
while j>=0 and arr[j]>key:
arr[j+1]=arr[j]; j-=1
arr[j+1]=key
return arr
public int[] insertionSort(int[] arr){
for(int i=1;i<arr.length;i++){
int key=arr[i],j=i-1;
while(j>=0&&arr[j]>key){arr[j+1]=arr[j];j--;}
arr[j+1]=key;
} return arr;
}
1. For each element 2. Shift larger right 3. Insert at correct position