Insertion Sort - Part 1

Sort by

recency

|

900 Discussions

|

  • + 0 comments
    def insertionSort1(n, arr):
        e=arr[n-1]
        for i in range(n-2,-1,-1):
            if arr[i]<e:
                arr[i+1]=e
                print(" ".join(str(x) for x in arr))
                break
            else:
                arr[i+1]=arr[i]
                print(" ".join(str(x) for x in arr))   
        else:
            arr[0]=e
            print(" ".join(str(x) for x in arr))
    
  • + 0 comments
    def insertionSort1(n, arr):
        l=arr.pop(-1)
        rev=arr[::-1]
        k=arr
        count=0
        for i in rev:
            if i > l:
                inx=k.index(i)
                k.insert(inx+1,i)
                print(*k)
                k.remove(i)
                count+=1
                if len(rev)== count:
                        k.insert(0,l)
                        print(*k)
                        break
            else:
                if i < l:
                    inx=k.index(i)
                    k.insert(inx+1,l)  
                    print(*k)
                    break
                
    
  • + 0 comments

    Here is problem solution in python java c++ c and Javascript - https://programmingoneonone.com/hackerrank-insertion-sort-part-1-problem-solution.html

  • + 0 comments

    Java:

    public static void insertionSort1(int n, List<Integer> arr) {
            int key = arr.get(n - 1); int j = n - 2;
            int[] arr2 = arr.stream().mapToInt(a -> a.intValue()).toArray();
            for (; j >=0 && arr2[j] > key; --j) {
                arr2[j+1] = arr2[j];
                for (int k = 0; k < n; k++) {
                    System.out.print(arr2[k] + " ");
                }
                System.out.println();
            }
            arr2[j+1] = key;
            for (int k = 0; k < n; k++) {
                System.out.print(arr2[k] + " ");
            }
    }
    
  • + 0 comments

    this my python solution :.

    def insertionSort1(n, arr): m = arr[n - 1]

    for j in range(n - 1, 0, -1):
        if arr[j - 1] > m:
            arr[j] = arr[j - 1]
            print(' '.join(str(x) for x in arr))
        else:
            arr[j] = m
            print(' '.join(str(x) for x in arr))
            return  # Exit after inserting
    
    # Insert at the beginning if m is the smallest
    arr[0] = m
    print(' '.join(str(x) for x in arr))