Insertion Sort - Part 1

Sort by

recency

|

901 Discussions

|

  • + 0 comments

    Java

    public static void printArray(List arr) { StringBuilder sb = new StringBuilder(); for (int num : arr) { sb.append(num).append(" "); } System.out.println(sb.toString().trim()); }

    public static void insertionSort1(int n, List<Integer> arr) {
    // Write your code here
    
    int i = arr.size()-1;
    int j = i-1;
    int key = arr.get(i);
    
        while(j>=0 && i>0 && key< arr.get(j)){
            arr.set(i, arr.get(j));
            printArray(arr);
    
            arr.set(j,key);
            i--;
            j--;
        }
        printArray(arr);
    }
    

    }

  • + 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] + " ");
            }
    }