fork(1) download
  1. #include <iostream>
  2.  
  3. constexpr int input[] = {-1, 12, 5, 18, 0, -7, -22, 3};
  4. constexpr int size = sizeof(input)/sizeof(input[0]);
  5.  
  6. struct SortedArray {
  7. int data[size] {};
  8.  
  9. constexpr SortedArray(const int input[], int size) {
  10. for (int i = 0; i < size; ++i)
  11. data[i] = input[i];
  12. }
  13. };
  14.  
  15. constexpr SortedArray bubbleSort(const int input[], int size) {
  16. SortedArray output(input,size);
  17.  
  18. bool s = true;
  19. while (s) {
  20. s = false;
  21. for (int i = 1; i < size; ++i) {
  22. if (output.data[i] < output.data[i-1]) {
  23. int tmp = output.data[i];
  24. output.data[i] = output.data[i-1];
  25. output.data[i-1] = tmp;
  26. s = true;
  27. }
  28. }
  29. }
  30.  
  31. return output;
  32. }
  33.  
  34. constexpr SortedArray sorted = bubbleSort(input,size);
  35.  
  36. static_assert(sorted.data[0] == -22, "runtime");
  37.  
  38. int main() {
  39. for (int i = 0; i < size; ++i)
  40. std::cout << sorted.data[i] << ' ';
  41. std::cout << std::endl;
  42. }
Success #stdin #stdout 0s 3412KB
stdin
Standard input is empty
stdout
-22 -7 -1 0 3 5 12 18