Skip to content

Commit f1b7d99

Browse files
committed
[HW-9.10/st-compl] array-sorting
Sorting array by two "for" loops, using "bubble" logic. Worth noting: - my solution. FS-dev: B-3 / JS basic
1 parent 798258a commit f1b7d99

File tree

1 file changed

+61
-0
lines changed
  • full-stack-dev/3-js-basic/9-cycles/9-10-hw-6-array-sorting

1 file changed

+61
-0
lines changed
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
// Дан массив чисел: const arr = [1, 40, -5, 10, 0]
2+
// Нужно написать функцию, которая сортирует данный массив при помощи циклов for (т.е. по возрастанию или убыванию).
3+
// Подсказка:
4+
// - Нужно использовать 2 цикла, вложенных друг в друга.
5+
// - Нужно сравнивать и менять элементы.
6+
7+
const arr = [1, 40, -5, 10, 0];
8+
9+
function getSortingArr(arr = []) {
10+
if (arr.length < 2) {
11+
return `Массив слишком короткий!`;
12+
}
13+
14+
let sortingArr = [...arr]; // копия
15+
16+
// "Пузырьковая" логика/сортировка
17+
for (let i = 0; i < sortingArr.length; i++) {
18+
for (let j = 0; j < sortingArr.length - 1 - i; j++) {
19+
if (sortingArr[j] > sortingArr[j + 1]) {
20+
const temp = sortingArr[j];
21+
sortingArr[j] = sortingArr[j + 1];
22+
sortingArr[j + 1] = temp;
23+
}
24+
}
25+
}
26+
27+
return sortingArr;
28+
}
29+
30+
console.log(getSortingArr(arr)); // [ -5, 0, 1, 10, 40 ]
31+
32+
// ?? моё решение
33+
// function getSortingArr(arr = []) {
34+
// if (arr.length < 1) {
35+
// return `Сортировка не возможна, пустой массив!`;
36+
// }
37+
//
38+
// let tempArr = [...arr];
39+
// const sortingArr = [];
40+
//
41+
// for (let i = tempArr.length - 1; i >= 0; i--) {
42+
// let smallestNum = tempArr[i];
43+
//
44+
// for (let j = tempArr.length - 1; j >= 0; j--) {
45+
// if (tempArr[j] < smallestNum) {
46+
// smallestNum = tempArr[j];
47+
// }
48+
// }
49+
//
50+
// if (!sortingArr.includes(smallestNum)) {
51+
// sortingArr.push(smallestNum);
52+
// }
53+
//
54+
// let getIndex = tempArr.indexOf(smallestNum);
55+
// tempArr.splice(getIndex, 1);
56+
// }
57+
//
58+
// return sortingArr;
59+
// }
60+
//
61+
// console.log(getSortingArr(arr)); // [ -5, 0, 1, 10, 40 ]

0 commit comments

Comments
 (0)