Я столкнулся с вопросом на собеседовании, цель которого состояла в том, чтобы написать алгоритм сортировки, который сортирует массив несортированных int
значений:
int[] unsortedArray = { 9, 6, 3, 1, 5, 8, 4, 2, 7, 0 };
Теперь я погуглил и обнаружил, что существует так много алгоритмов сортировки !
Наконец, я мог мотивировать себя копаться в Bubble Sort , потому что это казалось довольно простым для начала.
Я прочитал пример кода и пришел к решению, похожему на это:
static int[] BubbleSort(ref int[] array)
{
long lastItemLocation = array.Length - 1;
int temp;
bool swapped;
do
{
swapped = false;
for (int itemLocationCounter = 0; itemLocationCounter < lastItemLocation; itemLocationCounter++)
{
if (array[itemLocationCounter] > array[itemLocationCounter + 1])
{
temp = array[itemLocationCounter];
array[itemLocationCounter] = array[itemLocationCounter + 1];
array[itemLocationCounter + 1] = temp;
swapped = true;
}
}
} while (swapped);
return array;
}
Я ясно вижу, что это ситуация, когда оператор do { //work } while(cond)
очень помогает и предотвращает использование другой вспомогательной переменной.
Но разве это единственный случай, когда это более полезно, или вам известно какое-либо другое приложение, в котором использовалось это условие?