[JS] Arrays - 5 зад.


6

Условието на задачата е следното:

Sorting an array means to arrange its elements in increasing order. Write a script to sort an array. Use the "selection sort" algorithm: Find the smallest element, move it at the first position, find the smallest from the rest, move it at the second position, etc.
Hint: Use a second array

Любопитно ми е да видя как сте решили тази задачка. Аз използвам два вложени for-цикъла и в тях if-конструкция. Използвам и подсказката, като имам помощен масив. Решението е мое и не съм търсил в гугъл. Мисля си, обаче, че може да има и по-добър вариант.

Version 1.0: http://jsfiddle.net/georgi_yankov/V4L8s/
Version 1.1: http://jsfiddle.net/georgi_yankov/MuarM/

EDIT 1:
Както вече стана дума по-надолу в коментарите, аз не използвам "selection sort" алгоритъма.

EDIT 2:
Добавих и втори вариант на решението си (Version 1.1). Тук вече използвам "selection sort" алгоритъма. Между другото в първия си вариант (Version 1.0) открих бъг :).




Отговори



1
Имам въпрос по тази задача. В условието не се казва какъв тип е елемента - дали е число или стринг, или друго. Въпроса ми е по какъв критерий трябва да сравнявам елементите? Гледам, че някои от колегите ги сравняват като числа, други пък лексикографски.

от ADimanova (548 точки)


0
Предполагам, че няма много голямо значение, въпроса е да се ползва просто selection sort. Идеята на алгоритъма ще е 1 и съща, но в единия случеи ще работи с числа, в другия със стринг. Аз лично съм го правил с числа, но мисля, че няма проблем, което и от двете да избереш.

от mbelev (2312 точки)


1

Решение

С два вложени for цикъла намирам индекса на най-малкия елемент от масива и разменям текущия(от който съм почнал) с най-малкия елемент. Резултата показвам в нов div елемент.
 

от dzhenko (3893 точки)