deno.land / x / masx200_leetcode_test@10.6.5 / sort-an-array / index.ts

نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
export default function sortArray(nums: number[]): number[] { 0 < nums.length - 1 && mergeSort(nums, 0, nums.length - 1);
return nums;}
function mergeSort(nums: number[], left: number, right: number) { if (left < right) { const middle = Math.floor((left + right) / 2);
left < middle && mergeSort(nums, left, middle);
middle + 1 < right && mergeSort(nums, middle + 1, right);
mergeArray(nums, left, middle, middle + 1, right); }}
function mergeArray( nums: number[], left1: number, right1: number, left2: number, right2: number,) { const temp: number[] = Array(right2 - left2 + right1 - left1 + 2);
let p1 = left1;
let p2 = left2;
let t1 = 0;
while (p1 <= right1 && p2 <= right2) { if (nums[p1] <= nums[p2]) { temp[t1] = nums[p1];
t1++;
p1++; } else { temp[t1] = nums[p2];
t1++;
p2++; } } while (p1 <= right1) { temp[t1] = nums[p1];
t1++;
p1++; }
while (p2 <= right2) { temp[t1] = nums[p2];
t1++;
p2++; }
let t2 = 0;
let p3 = left1;
while (p3 <= right2) { nums[p3] = temp[t2];
p3++;
t2++; }}
masx200_leetcode_test

Version Info

Tagged at
a year ago