Есть ступенчатый массив и его необходимо отсортировать методом пузырька. Код вроде потихоньку работает, но в один момент просто крашится, в какой именно не знаю, т.к. слишком много итераций. Помогите пожалуйста.
int col = array.Length;
int row = array[1].Length;
int temp = 0;
for (int k = 0; k < col; ++k)
{
for (int l = 0; l < row; ++l)
{
for (int i = 0; i < col; ++i)
{
for (int j = 0; j < row; ++j)
{
if ((i + 1 == col) && (j + 1 == row))
{
continue;
}
else if ((j + 1 == row) && (array[i][j] > array[i + 1][0]))
{
temp = array[i][j];
array[i][j] = array[i + 1][0];
array[i + 1][0] = temp;
}
else if (array[i][j] > array[i][j + 1])
{
temp = array[i][j];
array[i][j] = array[i][j + 1];
array[i][j + 1] = temp;
}
}
}
}
}
в один момент просто крашится
Вы попадаете в блок else if (array[i][j] > array[i][j + 1]){ ... }
и вылезаете за границу массива.
И уберите, пожалуйста, два внешних цикла.
int col = array.Length;
int row = array[1].Length;
int temp = 0;
for (int k = 0; k < col; ++k)
{
for (int l = 0; l < row; ++l)
{
for (int i = 0; i < col; ++i)
{
for (int j = 0; j < row; ++j)
{
if (l != j && k != i) {
temp = array[i][j];
array[i][j] = array[k][l];
array[k][l] = temp;
}
}
}
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
вот написал программу для телеграмма на библиотеке TLSharp, сначала всё хорошо работало, но после чего-то, она стала зависать навсегда после...