В школьном задании я должен был создать алгоритм сортировки.
Я сделал следующее:
//array "ints" has already been declared
int s = 0;
for(int i=0;i<ints.length;i++) {
for(int j=i+1; j<ints.length; j++) {
if(ints[i]>ints[j]) {
s = ints[j];
ints[j]=ints[i];
ints[i]=s;
}
}
}
Учитель назвал приведенный выше алгоритм «пузырьковая сортировка». Однако из того, что я могу найти, (в Google) приведенный выше код выглядит как , а не пузырьковая сортировка, а пузырьковая сортировка больше похожа на приведенный ниже код: (вероятно, не самая эффективная версия это, но что угодно)
//array "ints" has already been declared
int sub = 0;
int swaps = 100;
if (ints.length>1) {
while(swaps>0) {
swaps=0;
for(int i=0; i<ints.length-1; i++) {
if(ints[i]>ints[i+1]) {
sub = ints[i+1];
ints[i+1]=ints[i];
ints[i]=sub;
swaps++;
}
}
}
}
Я уверен, что на самом деле я не изобрел новый алгоритм сортировки, но я не могу найти алгоритм сортировки, который использует тот же процесс, что и код, который я написал.
Есть ли название для моего алгоритма?
Обратите внимание, что он сравнивает несмежные значения и процесс сортировки, и алгоритм не обязательно завершается после раунда прохождения алгоритма без замены. Оба из них указывают, что это не пузырьковая сортировка. Возможно, это сортировка выбора версии.
Я не хочу знать, насколько это эффективно; Я работаю над тем, чтобы выяснить это самостоятельно.