fork download
  1. #include <iostream>
  2. #include <cstdlib>
  3.  
  4. void swap(int* bigger, int* smaller)
  5. {
  6. *bigger += *smaller;
  7. *smaller = *bigger - *smaller;
  8. *bigger = *bigger - *smaller;
  9. }
  10.  
  11. int* bubbleSort(int *data, int size)
  12. {
  13. bool swapped = true;
  14. int *sortedArray = (int*)malloc(size*sizeof(int));
  15. int* s = sortedArray;
  16. for (int i = 0; i < size;i++){
  17. *s++ = *data++;
  18. }
  19.  
  20. while (swapped)
  21. {
  22. swapped = false;
  23. for (int i = 1; i <= size - 1; i++)
  24. {
  25. if (sortedArray[i - 1] > sortedArray[i])
  26. {
  27. swap(&sortedArray[i - 1], &sortedArray[i]);
  28. swapped = true;
  29. }
  30. }
  31. size--;
  32. }
  33. return sortedArray;
  34. }
  35.  
  36. int main()
  37. {
  38. int data[] = {9,2,8,3,7,4,6,5,1,0};
  39. int* sorted = bubbleSort(data, 10);
  40.  
  41. for(int i = 0; i < 10; ++i)
  42. {
  43. std::cout << data[i] << " " << sorted[i] << "\n";
  44. }
  45. return 0;
  46. }
  47.  
Success #stdin #stdout 0s 3472KB
stdin
Standard input is empty
stdout
9 0
2 1
8 2
3 3
7 4
4 5
6 6
5 7
1 8
0 9