pva, Спасибо за ответ и помощь, но
Цитата pva:
Код:
ar[counter++] = TempArray[a][b];
»
|
я не думаю, поскольку индексирование начинается с нуля "0 1 2 3 4 5 6 7 8 9", и потому счётчик
counter++ лишь всегда будет равен переменной
sz, если
sz = 20000, то и
counter после собирающего прохода тоже будет равен 20000, поскольку если элемент в массиве TempArray[a][b] не всегда расположен последовательно, то идёт проверка, если n-й элемент TempArray, не равен нулю, то присвоить массиву ar[] первое значение, и в итоге всё будет правильно, ведь сортируемых чисел только 20000, следовательно, правильных условий тоже будет 20000, сегодня проверял, но всё равно ошибка при значении размера массивов больше чем 20000 то "ошибается", вот тут:
Код:
TempArray[Ras][j] = ar[j]; // Расположение соответсвенно разряду
Почему?! Незнаю, иной раз сортирует 14 элементов, иной раз 2, иной раз 7, почему так, хоть убейте, не знаю?!
----------------------------------------------------------------------
Привет
5pliT, тут кажись ошибка
может ты имеешь ввиду:
Код:
while(n < 0 || n > 0)
или
Код:
while(n < 0 && n > 0)
А по поводу
Цитата 5pliT:
Попробуйте использовать не int, а long long например »
|
разницы то нет, в типе
int переменная хранится в 4-х байтах, этого хватит даже больше, чем на миллион если поставлю, кроме того, пробовал без сортировки используя только несортированный массив выводить из функции
bucketSort - так функция принимает и выводит значения, вот если бы была ошибка алгоритма, то сортировки бы не было, но тем не менее при размере массива в 20000 всё работает, а больше ни в какую, причём почему-то несколько значений даже "пробуют" сортироваться, вот если не будет трудно, то попробуй на своём компиляторе скопировать мой код и попробовать изменить всего два значения, я их выделил жирным шрифтом:
Код:
int main()
{
const int size = 20000;
int array[size] = {0};
....
и тут:
Код:
void bucketSort(int ar[], const int sz)
{
const int Rasryad = 10;
const int Position = 20000;
int TempArray[Rasryad][Position] = {0};
....
Разряды не трогаем, поскольку в 50000 и в 20000 по 5 разрядов в числе, попробуй пожалуйста, посмотри что за ошибка?! Проблема явно не в типе переменной, стопроцентно!