Quicksort 1 - Partition

Sort by

recency

|

395 Discussions

|

  • + 0 comments

    Here is my c++ solution, you can watch the explanation here : https://youtu.be/2HD41pYh8cU

    vector<int> quickSort(vector<int> arr) {
        vector<int> left, equal, right;
        for(int i = 0; i < arr.size(); i++){
            if(arr[i] < arr[0]) left.push_back(arr[i]);
            else if(arr[i] > arr[0]) right.push_back(arr[i]);
            else equal.push_back(arr[i]);
        }
        left.insert(left.end(), equal.begin(), equal.end());
        left.insert(left.end(), right.begin(), right.end());
        return left;
    }
    
  • + 0 comments

    my code in python:

    `left = [i for i in arr[1:] if arr[0] >= i] right = [i for i in arr[1:] if arr[0] < i] left.append(arr[0]) return left + right

    `

  • + 0 comments

    Perl:

    sub quickSort {
        my $arr = shift;
        return sort {$a <=> $b} @$arr; 
    }
    
  • + 0 comments

    My answer in Typescript, func to reusable

    function quickSort(arr: number[]): number[] {
        // for resusable
        const split = (arr: number[]): [number[], number[], number, number[]] => {
            let pivot = arr[0]
            let lh = []
            let rh = []
            for (let i in arr) {
                if (arr[i] < pivot) lh.push(arr[i])
                if (arr[i] > pivot) rh.push(arr[i])
            }
            return [[...lh, pivot, ...rh], lh, pivot, rh]
        }
    
        return split(arr)[0]
    }
    
  • + 0 comments

    Java:

    public static List<Integer> quickSort(List<Integer> arr) {
      // Write your code here
      int pivot = arr.get(0);
      List<Integer> left = new ArrayList<>();
      List<Integer> right = new ArrayList<>();
      for (Integer i : arr) {
        if (i < pivot) {
          left.add(i);
        } else if (i > pivot) {
          right.add(i);
        }
      }
      left.add(pivot);
      left.addAll(right);
      return left;
    }