fork download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. template <class T>
  5. void shellSort(T list [], int size)
  6. {
  7. using std::swap;
  8.  
  9. unsigned gap = size / 2;
  10. while (gap > 0)
  11. {
  12. for (size_t i = 0; i < size - gap; i++)
  13. {
  14. if (list[i] > list[i + gap])
  15. {
  16. swap(list[i], list[i + gap]);
  17. }
  18. for (int j = 0; j < size; j++)
  19. {
  20. std::cout << list[j] << " ";
  21. }
  22. std::cout << std::endl;
  23. }
  24. gap /= 2;
  25. }
  26.  
  27. // bubbleSort(list, size);
  28. }
  29.  
  30. int main()
  31. {
  32. int data[] = { 5, 2, 7, 2, 3, 4, 1 };
  33.  
  34. shellSort(data, sizeof(data)/sizeof(*data));
  35. }
  36.  
Success #stdin #stdout 0s 3296KB
stdin
Standard input is empty
stdout
2 2 7 5 3 4 1 
2 2 7 5 3 4 1 
2 2 4 5 3 7 1 
2 2 4 1 3 7 5 
2 2 4 1 3 7 5 
2 2 4 1 3 7 5 
2 2 1 4 3 7 5 
2 2 1 3 4 7 5 
2 2 1 3 4 7 5 
2 2 1 3 4 5 7