Алгоритм для максимального целого числа в массиве целых чисел - PullRequest
0 голосов
/ 22 апреля 2010

Если нам нужно реализовать функцию, которая принимает массив целых чисел и возвращает максимальное целое число в коллекции, предполагая, что длина массива меньше 1000. Вы бы использовали Bubble Sort или Merge Sort и почему?

Кроме того, что произойдет с приведенным выше выбором алгоритма, если длина массива будет больше 1000?Я немного запутался, почему мне следует использовать тот или иной алгоритм по сравнению с другим.Это только из-за его сложности и времени или других факторов, также вовлеченных в это?Что если мне нужно протестировать вышеуказанную функцию, а для простого алгоритма потребуется гораздо больше времени, а для сложного - меньше?

Ответы [ 4 ]

18 голосов
/ 22 апреля 2010

Я бы не стал сортировать вообще.Я бы просто пересек массив и отслеживал самый большой на ходу.Это занимает O (N) времени, тогда как алгоритмы сортировки обычно не работают лучше, чем O (N * log (N)).

3 голосов
/ 22 апреля 2010

Этот сайт качается

http://www.sorting -algorithms.com /

2 голосов
/ 22 апреля 2010

Хорошо, если вы ДОЛЖНЫ сортировать, тогда используйте сортировку слиянием, потому что это намного быстрее, чем пузырьковая сортировка.Для 1000 элементов и одного вида вы, вероятно, не заметите разницу на современном компьютере, но для большего количества элементов (я думаю> 10 000) разница становится заметной.

0 голосов
/ 22 апреля 2010

Позволяет назвать длину вашего массива N.

Сортировка массива с использованием Bubble Sort занимает примерно порядка N * N единиц времени.

Сортировка с использованием сортировки слиянием занимает порядка N * log N единиц времени.

Простой просмотр каждого элемента один за другим и отслеживание того, какой из них является самым большим, займет порядка N единиц времени.

Следовательно, используйте последний метод.

...