Advertisement
Guest User

comments

a guest
Apr 8th, 2020
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.29 KB | None | 0 0
  1. // ============================================================================================ COMMENTS
  2.  
  3. //void countingSort(int *array, int size, int k = 10) // функция сортировки методом подсчета
  4. //{
  5. //    int counters[10] = {0}; // массив счетчиков
  6. //
  7. //    for (int i = 0; i < size; i++) // частотный анализ
  8. //    {
  9. //        counters[array[i]] += 1;
  10. //    }
  11. //
  12. //    int i = 0; // переменная-индекс результирующего массива
  13. //    for (int j = 0; j < k; j++)
  14. //    {
  15. //        while (counters[j] != 0) // вывод индекса counters столько раз, сколько записано в поле по этому индексу
  16. //        {
  17. //            array[i] = j; // запись в результ-й массив
  18. //            counters[j]--; // уменьшение значения в массиве счетчиков
  19. //            i++; // переход на следующий индекс результ-го массива
  20. //        }
  21. //    }
  22. //}
  23.  
  24. //int pow(int number, int power)
  25. //{
  26. //    if (power == 0)
  27. //    {
  28. //        return 1;
  29. //    }
  30. //
  31. //    int nSave = number;
  32. //
  33. //    int counter = 1;
  34. //
  35. //    while (counter != power)
  36. //    {
  37. //        number *= nSave;
  38. //        counter++;
  39. //    }
  40. //
  41. //    return number;
  42. //}
  43.  
  44. //int getRadixDigit(int number, int radix)
  45. //{
  46. //    int count = 0;
  47. //    int result = 0;
  48. //
  49. //    while (number != 0)
  50. //    {
  51. //        ++count;
  52. //        result = number % 10;
  53. //        number /= 10;
  54. //
  55. //        if (count == radix)
  56. //        {
  57. //            return result;
  58. //        }
  59. //    }
  60. //
  61. //    return result;
  62. //}
  63. //
  64. //int insertToRadix(int number, int toInsert, int radix)
  65. //{
  66. //    int remainder = number % (pow(10, radix - 1));
  67. //    int mainBody = number / (pow(10, radix));
  68. //    int result = (mainBody * (pow(10, radix))) + (toInsert * (pow(10, (radix - 1)))) + remainder;
  69. //
  70. //    return result;
  71. //}
  72. //
  73. //int* radixSort(int* array, int size, int d, int k = 10) // генератор рандомных чисел
  74. //{
  75. //    for (int i = 1; i <= d; i++) // цикл по разрядам чисел
  76. //    {
  77. //        int counters[10] = {0}; // массив счетчиков
  78. //
  79. //        for (int m = 0; m < size; m++) // частотный анализ
  80. //        {
  81. //            counters[getRadixDigit(array[m], i)] += 1;
  82. //        }
  83. //
  84. //        int g = 0; // переменная-индекс результирующего массива
  85. //        for (int j = 0; j < k; j++)
  86. //        {
  87. //            while (counters[j] != 0) // вывод индекса counters столько раз, сколько записано в поле по этому индексу
  88. //            {
  89. ////                array[g] = array[g] / radixDelta + j; // запись в результ-й массив
  90. //                array[g] = insertToRadix(array[g], j, i); // запись в результ-й массив j - toInsert
  91. //                counters[j]--; // уменьшение значения в массиве счетчиков
  92. //                g++; // переход на следующий индекс результ-го массива
  93. //            }
  94. //        }
  95. //    }
  96. //
  97. //    return array;
  98. //}
  99.  
  100. //void radixSort(int* array, int size, int d, int k = 10) // старый радикс
  101. //{
  102. //    List<float>* counters = new List<float>[k];
  103. //
  104. //    for (int i = 1; i <= d; i++)
  105. //    {
  106. //        for (int m = 0; m < size; m++) // частотный анализ
  107. //        {
  108. //            counters[getRadixDigit(array[m], i)] += array[m];
  109. //        }
  110. //
  111. //        int g = 0; // переменная-индекс результирующего массива
  112. //        for (int j = 0; j < k; j++)
  113. //        {
  114. //            while (!counters[j].isEmpty()) // вывод индекса counters столько раз, сколько записано в поле по этому индексу
  115. //            {
  116. //                array[g] = counters[j].popFront(); // запись в результ-й массив j - toInsert
  117. //                g++; // переход на следующий индекс результ-го массива
  118. //            }
  119. //        }
  120. //    }
  121. //}
  122.  
  123. //void shellHibbardSort(int* array, int size)
  124. //{
  125. //    int swp = 0;
  126. //    int comp = 0;
  127. //    int k = 0;
  128. //
  129. //    double val = (int) log(size + 1) / log(2);
  130. //    int increment = (int) pow(2, val) - 1;
  131. // // increment =(int)9* pow(4,n)- 9* pow(2,n);
  132. //
  133. //    while (increment > 0)
  134. //    {
  135. //        for (int i = 0; i < increment; i++)
  136. //        {
  137. //            for (int j = 0; j < size; j += increment)
  138. //            {
  139. //                int temp = array[j];
  140. //
  141. //                for(k = j - increment; k >= 0 && temp < array[k]; k -= increment)
  142. //                {
  143. //                    comp++;
  144. //                    swp++;
  145. //                    array[k + increment] = array[k];
  146. //                }
  147. //
  148. //                array[k + increment] = temp;
  149. //                swp++;
  150. //            }
  151. //        }
  152. //
  153. //        comp++;
  154. //        val--;
  155. //
  156. //        if (increment != 1)
  157. //        {
  158. //            increment = pow(2, val) - 1;
  159. //        }
  160. //        else
  161. //        {
  162. //            increment = 0;
  163. //        }
  164. //    }
  165. //}
  166.  
  167. //void shellShellSort(int* array, int size)
  168. //{
  169. //    int k;
  170. //    int swp = 0;
  171. //    int comp = 0;
  172. //    int increment = size / 2;
  173. //
  174. //    while (increment > 0)
  175. //    {
  176. //        for (int i = 0; i < increment; i++)
  177. //        {
  178. //            for (int j = 0; j < size; j += increment)
  179. //            {
  180. //                int temp = array[j];
  181. //
  182. //                for ( k = j - increment; k >= 0 && temp < array[k]; k -= increment)
  183. //                {
  184. //                    comp++;
  185. //                    swp++;
  186. //                    array[k + increment] = array[k];
  187. //                }
  188. //                array[k + increment] = temp;
  189. //                swp++;
  190. //            }
  191. //        }
  192. //
  193. //        comp++;
  194. //
  195. //        if (increment / 2 != 0)
  196. //        {
  197. //            increment = increment / 2;
  198. //        }
  199. //        else if (increment == 1)
  200. //        {
  201. //            increment = 0;
  202. //        }
  203. //        else
  204. //        {
  205. //            increment = 1;
  206. //        }
  207. //    }
  208. //}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement