Индекс ковша в сортировке ковша - PullRequest
0 голосов
/ 19 ноября 2011

Я пытаюсь улучшить сортировку сегментов для большого числа, превышающего 10000. Я не совсем уверен, почему мой код плохо работает с большими числами.Алгоритм My Bucket Sort для массива размером n:

  1. Создать массив связанного списка размером n
  2. Вычислить диапазон для чисел

  3. Рассчитать интервал для каждого сегмента

  4. Рассчитать индекс для сегмента, в который нужно поместить конкретное числоиндекс) Я считаю, что этот конкретный способ поиска индекса занимает много времени для больших чисел.Как я могу улучшить поиск индекса сегментов?

PS Я слышал, что есть способ предварительно обработать массив и найти минимальное и максимальное количество массивов.Затем рассчитайте индекс, вычитая конкретное число из мин.Индекс = число-мин.Я не совсем понял идею расчета индекса.Вопросы: 1. Это эффективный способ найти индекс?2. Как мне обрабатывать случаи, когда у меня есть массив размером 4 и числами 31,34,51,56?31 идет в ведро 0,34 идет в ведро 3, как насчет 51 и 56?3. Есть ли другой способ расчета индекса?

1 Ответ

0 голосов
/ 22 ноября 2011

Вы можете найти свой индекс быстрее через Отдел. Индекс = значение / интервал. Если первый интервал начинается с 'min' вместо 0, тогда используйте (значение-min) в качестве числителя.

...