fork download
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>
  4. using namespace std;
  5. int comparisons=0,swaps=0;
  6. int*CombSort(int*input,int input_size){
  7. int gap=input_size;
  8. double shrink=1.3;
  9. bool swapped;
  10. while (!( gap==1 and swapped==false )){//repeate until gap==1 and swapped==false
  11. gap=int(gap/shrink);
  12. if(gap<1)
  13. {
  14. gap=1;
  15. }//end if
  16. int i=0;
  17. swapped=false;
  18. while(!( i+gap>=input_size )){
  19. comparisons++;
  20. if(input[i]>input[i+gap]){
  21. swap(input[i],input[i+gap]);
  22. swaps++;
  23. swapped=true;
  24. }//end if
  25. i=i+1;
  26. }//end while
  27. }//end while
  28. return input;
  29. }//end combSort
  30. int main()
  31. {
  32. int A[1000];
  33. srand(time(0));
  34. for(int i=0;i<1000;i++)
  35. A[i]=rand();
  36. // cout<<A[i]<<" ";
  37. //cout<<endl;
  38. CombSort(A,1000);
  39. cout<<"comparsisons="<<comparisons<<" swaps="<<swaps<<endl;
  40. //for(int i=0;i<10;i++)
  41. // cout<<A[i]<<" ";
  42. //cout<<endl;
  43. return 0;
  44. }
Success #stdin #stdout 0s 3296KB
stdin
Standard input is empty
stdout
comparsisons=22712 swaps=4435