Я пытаюсь создать сортировку пузыря, используя while. Я разместил свой класс ниже. Почему в сортировке последний int из 9 не отображается.Пузырь сортировки, используя цикл. Последний вид, отсутствующий в выходе
namespace BubbleSort {
class Program
{
static void Main(string[] args)
{
int[] i = {9, 2, 7, 6, 1, 3, 5, 4, 8};
int va = 0, vb = 0;
//loop through all numbers in the array.
while (va < i.Length)
{
//loop through all numbers in the array trailing the first loop by 1.
while (vb < i.Length)
{
//compare the two values.
if (i[vb] < i[va]) {
Console.WriteLine(vb);
}
vb++; //increment
}
va++; //increment
}
Console.ReadLine();
}
}
}
Правильно ли этот подход?
Хотите ли вы использовать сортировку пузырьков по определенной причине? Почему бы не просто i.OrderBy (x => x); –
Thats not bubble sort, дополнительно вы выводите индекс, а не значение. Сортировка Bubble включает в себя несколько проходов. –
i.Length равно 9, вы увеличиваете объем печати vb, в то время как это меньше, чем i.Length, поэтому вы никогда не будете распечатывать 9. – Jonny