diff --git a/javascript/binary_search.js b/javascript/binary_search.js index 92e3fdc..7a80335 100644 --- a/javascript/binary_search.js +++ b/javascript/binary_search.js @@ -28,4 +28,4 @@ function recursiveBinarySearch(array, item, start, end) { } console.log(recursiveBinarySearch(array, 333, 0, array.length)) -console.log('count =', count) \ No newline at end of file +console.log('count:', count) \ No newline at end of file diff --git a/javascript/linear_search.js b/javascript/linear_search.js index f66840e..138ac16 100644 --- a/javascript/linear_search.js +++ b/javascript/linear_search.js @@ -16,4 +16,4 @@ function linearSearch(array, item) { return null } console.log(linearSearch(array, 333)) -console.log('count =', count) \ No newline at end of file +console.log('count:', count) \ No newline at end of file diff --git a/javascript/selection_sort.js b/javascript/selection_sort.js new file mode 100644 index 0000000..b1e7db6 --- /dev/null +++ b/javascript/selection_sort.js @@ -0,0 +1,30 @@ +const { randomArray } = require("./utils"); +const array = randomArray(10000, 1000) + +let count = 0 +/** + * @description - Алгоритм сортировки выбором, сложность O(n*n). + * @description - В цикле находим минимальное число в массиве и меняем его по индексу с первым элементов, далее со вторым и так далее. + * @param {Array} array + */ +function selectionSort(arr) { + let n = arr.length; + for (let i = 0; i < n; i++) { + let min = i; + for (let j = i + 1; j < n; j++) { + if (arr[j] < arr[min]) { + min = j; + } + count += 1 + } + if (min != i) { + let tmp = arr[i]; + arr[i] = arr[min]; + arr[min] = tmp; + } + } + return arr; +} + +console.log(selectionSort(array)) +console.log('count:', count) \ No newline at end of file