github.com/nitinawathare/ethereumassignment3@v0.0.0-20211021213010-f07344c2b868/go-ethereum/scripts/contracts/sortMemory.sol (about) 1 pragma solidity ^0.4.24; 2 3 contract Sorter { 4 5 function sort(int size) public { 6 int[] memory data = new int[](uint(size)); 7 for (int x = 0; x < size; x++) { 8 data[uint(x)] = size-x; 9 } 10 quickSort(data, 0, size - 1); 11 } 12 13 function quickSort(int[] arr, int left, int right) internal { 14 int i = left; 15 int j = right; 16 if (i == j) return; 17 int pivot = arr[uint(left + (right - left) / 2)]; 18 while (i <= j) { 19 while (arr[uint(i)] < pivot) { 20 i++; 21 } 22 while (pivot < arr[uint(j)]){ 23 j--; 24 } 25 if (i <= j) { 26 int temp = arr[uint(i)]; 27 arr[uint(i)] = arr[uint(j)]; 28 arr[uint(j)] = temp; 29 i++; 30 j--; 31 } 32 } 33 } 34 }