Я новичок в программировании и просто играл с сортировкой и сделал этот алгоритм. Он похож на пузырь, но он сравнивает не соседние пары, а пары, такие как: первый и второй, первый и третий .... второй и третий, второй и четвертый и т. Д. Не могли бы вы рассказать мне, какова эффективность/эффективность алгоритма или сравнить его с пузырем? Или, по крайней мере, посоветуйте мне, как решить проблему самостоятельно. Меня интересует, насколько пузырь лучше, чем этот. Спасибо.Эффективность/производительность алгоритма сортировки
void sortArray(int a[]) {
int q, x, temp;
for (q = 0; q < SIZE - 1; q++) {
for (x = q + 1; x < SIZE; x++) {
if (a[q] < a[x]) {
temp = a[q];
a[q] = a[x];
a[x] = temp;
}
}
}
}
Вы протестировали свой алгоритм? Действительно ли он сортируется? –
Что вам нужно спросить себя: «Сколько сравнений выполняется в среднем». Например, при поиске наибольшего числа в массиве, идущем слева направо, среднее число проверок будет составлять половину длины списка. – keyser
Звучит немного как [сортировка] (http://en.wikipedia.org/wiki/Selection_sort). На n-й итерации внешнего цикла первые n элементов списка находятся в правильном положении. Тем не менее, вы выполняете больше свопов. При сортировке сортировки выполняется только одна своп на каждую итерацию внешнего цикла. – Kevin