Skip to content

Commit 5bd106f

Browse files
committed
sprint5
1 parent a41b5e8 commit 5bd106f

2 files changed

Lines changed: 42 additions & 72 deletions

File tree

src/main/java/algorithms/sprint5/PyramidSort.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@ public class PyramidSort {
3535
* Временная сложность:
3636
* - построение кучи: O(n);
3737
* - n операций извлечения максимума: O(n log n);
38-
* - итоговая сложность: O(n log n).
38+
* - итоговая сложность: O(n log n), где n количество участников;.
3939
*
4040
* Пространственная сложность:
41-
* - O(n) на хранение массива участников;
41+
* - O(n) на хранение массива участников, где n количество участников;
4242
* - дополнительная память алгоритма сортировки: O(1).
4343
*/
4444

Lines changed: 40 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,4 @@
1-
// https://contest.yandex.ru/contest/24810/run-report/160624033/
2-
3-
// <template>
4-
class Node {
5-
private int value;
6-
private Node left;
7-
private Node right;
8-
9-
Node(Node left, Node right, int value) {
10-
this.left = left;
11-
this.right = right;
12-
this.value = value;
13-
}
14-
15-
public int getValue() {
16-
return value;
17-
}
18-
19-
public Node getRight() {
20-
return right;
21-
}
22-
23-
public void setRight(Node right) {
24-
this.right = right;
25-
}
26-
27-
public Node getLeft() {
28-
return left;
29-
}
30-
31-
public void setLeft(Node left) {
32-
this.left = left;
33-
}
34-
35-
public void setValue(int value) {
36-
this.value = value;
37-
}
38-
}
39-
// <template>
1+
// https://contest.yandex.ru/contest/24810/run-report/160624089/
402

413
public class Solution {
424

@@ -82,7 +44,8 @@ public class Solution {
8244
* Временная сложность: O(h), где h — высота дерева,
8345
* потому что мы спускаемся только по одному пути вниз.
8446
*
85-
* Пространственная сложность: O(h) из-за стека рекурсии.
47+
* Пространственная сложность: O(h) из-за стека рекурсии,
48+
* где h — высота дерева.
8649
*/
8750

8851
public static Node remove(Node root, int key) {
@@ -120,35 +83,42 @@ private static Node findMax(Node node) {
12083
}
12184
return node;
12285
}
86+
}
87+
88+
// <template>
89+
class Node {
90+
private int value;
91+
private Node left;
92+
private Node right;
12393

124-
private static void test() {
125-
Node node1 = new Node(null, null, 2);
126-
Node node2 = new Node(node1, null, 3);
127-
Node node3 = new Node(null, node2, 1);
128-
Node node4 = new Node(null, null, 6);
129-
Node node5 = new Node(node4, null, 8);
130-
Node node6 = new Node(node5, null, 10);
131-
Node node7 = new Node(node3, node6, 5);
132-
133-
Node newHead = remove(node7, 10);
134-
assert newHead.getValue() == 5;
135-
assert newHead.getRight() == node5;
136-
assert newHead.getRight().getValue() == 8;
137-
138-
Node root = new Node(
139-
new Node(new Node(null, null, 2), new Node(null, null, 4), 3),
140-
new Node(new Node(null, null, 7), new Node(null, null, 9), 8),
141-
5
142-
);
143-
Node result = remove(root, 5);
144-
assert result.getValue() == 4;
145-
assert result.getLeft().getValue() == 3;
146-
assert result.getRight().getValue() == 8;
147-
148-
Node single = new Node(null, null, 1);
149-
assert remove(single, 1) == null;
150-
151-
Node unchanged = new Node(null, null, 1);
152-
assert remove(unchanged, 2) == unchanged;
94+
Node(Node left, Node right, int value) {
95+
this.left = left;
96+
this.right = right;
97+
this.value = value;
15398
}
154-
}
99+
100+
public int getValue() {
101+
return value;
102+
}
103+
104+
public Node getRight() {
105+
return right;
106+
}
107+
108+
public void setRight(Node right) {
109+
this.right = right;
110+
}
111+
112+
public Node getLeft() {
113+
return left;
114+
}
115+
116+
public void setLeft(Node left) {
117+
this.left = left;
118+
}
119+
120+
public void setValue(int value) {
121+
this.value = value;
122+
}
123+
}
124+
// <template>

0 commit comments

Comments
 (0)