/* * * Runtime: O(n^2) * Memory: O(1) * while the array isn't sorted yet: * for each number in the list excluding the last: * if the number belongs after the next number: * swap them */ #include using namespace std; int main(){ int numbers[] = {5, 4, 6, 2, 8, 2, 3, 1}; int length = sizeof(numbers) / sizeof(numbers[0]); bool sorted = false; /* If array is already sorted, O(1) * If array is not sorted, could be O(n) * If items only have to move to the right, O(1) */ while(!sorted){ sorted = true; for(int i = 0; i < length - 1; i++){ // O(n) if(numbers[i] > numbers[i+1]){ int temp = numbers[i]; numbers[i] = numbers[i+1]; numbers[i+1] = temp; sorted = false; } } } for(auto n: numbers) cout << n << " "; cout << endl; return 0; }