Skip to content

Commit f831a71

Browse files
updated eslint
1 parent db2ec81 commit f831a71

File tree

3 files changed

+316
-317
lines changed

3 files changed

+316
-317
lines changed

.eslintrc.yml

Lines changed: 100 additions & 98 deletions
Original file line numberDiff line numberDiff line change
@@ -2,38 +2,42 @@ root: true
22
env:
33
node: true
44
browser: true
5-
es6: true
6-
parser: '@typescript-eslint/parser'
5+
es2021: true
6+
parser: 'vue-eslint-parser'
7+
parserOptions:
8+
parser: '@typescript-eslint/parser'
9+
ecmaVersion: 2021
10+
sourceType: module
711
plugins:
812
- '@typescript-eslint'
13+
- 'import'
14+
- 'vue'
915
extends:
1016
- eslint:recommended
11-
- plugin:@typescript-eslint/eslint-recommended
17+
- plugin:vue/vue3-recommended
1218
- plugin:@typescript-eslint/recommended
13-
- plugin:yml/standard
19+
- plugin:import/errors
20+
- plugin:import/warnings
21+
- plugin:import/typescript
1422
overrides:
1523
- files:
16-
- '**/*.js'
24+
- '**/*.js'
25+
- '**/*.ts'
1726
rules:
18-
'@typescript-eslint/no-inferrable-types':
19-
- 0
20-
'@typescript-eslint/explicit-function-return-type':
21-
- 0
27+
'@typescript-eslint/no-inferrable-types': off
28+
'@typescript-eslint/explicit-function-return-type': off
2229
rules:
23-
'@typescript-eslint/no-empty-interface':
24-
- error
25-
'@typescript-eslint/no-inferrable-types':
26-
- error
27-
'@typescript-eslint/explicit-function-return-type':
28-
- error
29-
eqeqeq:
30-
- error
31-
camelcase:
32-
- error
33-
no-console:
34-
- error
35-
no-lonely-if:
36-
- error
30+
'@typescript-eslint/no-empty-interface': error
31+
'@typescript-eslint/no-explicit-any': warn
32+
'@typescript-eslint/explicit-module-boundary-types': error
33+
'@typescript-eslint/no-unused-vars':
34+
- error
35+
- argsIgnorePattern: '^_'
36+
varsIgnorePattern: '^_'
37+
eqeqeq: error
38+
camelcase: error
39+
no-console: error
40+
no-lonely-if: error
3741
comma-dangle:
3842
- error
3943
- arrays: never
@@ -45,8 +49,7 @@ rules:
4549
- error
4650
- 4
4751
- SwitchCase: 1
48-
no-tabs:
49-
- error
52+
no-tabs: error
5053
object-curly-spacing:
5154
- error
5255
- always
@@ -56,93 +59,92 @@ rules:
5659
curly:
5760
- error
5861
- all
59-
template-curly-spacing:
60-
- error
61-
no-trailing-spaces:
62-
- error
63-
no-spaced-func:
64-
- error
65-
space-before-blocks:
66-
- error
62+
template-curly-spacing: error
63+
no-trailing-spaces: error
64+
space-before-blocks: error
6765
semi:
6866
- error
6967
- never
68+
quotes:
69+
- error
70+
- single
71+
- avoidEscape: true
7072
object-curly-newline:
7173
- error
7274
- multiline: true
7375
minProperties: 2
7476
consistent: true
7577
object-property-newline:
7678
- error
77-
object-shorthand:
78-
- error
79+
- allowAllPropertiesOnSameLine: true
80+
object-shorthand: error
7981
no-param-reassign:
8082
- error
8183
- props: false
82-
no-extra-parens:
83-
- error
84-
no-return-await:
85-
- error
86-
no-self-compare:
87-
- error
88-
no-template-curly-in-string:
89-
- error
90-
no-throw-literal:
91-
- error
92-
no-undef-init:
93-
- error
94-
no-unmodified-loop-condition:
95-
- error
96-
no-unneeded-ternary:
97-
- error
98-
no-unreachable-loop:
99-
- error
100-
no-unsafe-optional-chaining:
101-
- error
102-
no-unused-expressions:
103-
- error
84+
no-extra-parens: error
85+
no-return-await: error
86+
no-self-compare: error
87+
no-template-curly-in-string: error
88+
no-throw-literal: error
89+
no-undef-init: error
90+
no-unmodified-loop-condition: error
91+
no-unneeded-ternary: error
92+
no-unreachable-loop: error
93+
no-unsafe-optional-chaining: error
94+
no-unused-expressions: error
10495
no-use-before-define:
10596
- error
10697
- functions: false
107-
no-useless-backreference:
108-
- error
109-
no-useless-call:
110-
- error
111-
no-useless-computed-key:
112-
- error
113-
no-useless-concat:
114-
- error
115-
no-useless-constructor:
116-
- error
117-
no-useless-rename:
118-
- error
119-
no-useless-return:
120-
- error
121-
no-var:
122-
- error
123-
nonblock-statement-body-position:
124-
- error
125-
one-var-declaration-per-line:
126-
- error
127-
prefer-arrow-callback:
128-
- error
129-
prefer-const:
130-
- error
131-
prefer-exponentiation-operator:
132-
- error
133-
prefer-numeric-literals:
134-
- error
135-
prefer-object-spread:
136-
- error
137-
prefer-promise-reject-errors:
138-
- error
139-
prefer-template:
140-
- error
141-
prefer-rest-params:
142-
- error
143-
rest-spread-spacing:
144-
- error
145-
require-atomic-updates:
146-
- error
147-
require-await:
98+
classes: true
99+
variables: true
100+
no-useless-backreference: error
101+
no-useless-call: error
102+
no-useless-computed-key: error
103+
no-useless-concat: error
104+
no-useless-constructor: error
105+
no-useless-rename: error
106+
no-useless-return: error
107+
no-var: error
108+
nonblock-statement-body-position: error
109+
one-var-declaration-per-line: error
110+
prefer-arrow-callback: error
111+
prefer-const: error
112+
prefer-exponentiation-operator: error
113+
prefer-numeric-literals: error
114+
prefer-object-spread: error
115+
prefer-promise-reject-errors: error
116+
prefer-template: error
117+
prefer-rest-params: error
118+
rest-spread-spacing: error
119+
require-atomic-updates: error
120+
require-await: error
121+
import/order:
122+
- error
123+
- groups:
124+
- builtin
125+
- external
126+
- internal
127+
- parent
128+
- sibling
129+
- index
130+
newlines-between: always
131+
alphabetize:
132+
order: asc
133+
caseInsensitive: true
134+
vue/html-indent:
148135
- error
136+
- 4
137+
vue/max-attributes-per-line:
138+
- error
139+
- singleline: 3
140+
multiline: 1
141+
vue/require-default-prop: off
142+
vue/html-self-closing:
143+
- error
144+
- html:
145+
void: never
146+
normal: always
147+
component: always
148+
settings:
149+
import/resolver:
150+
typescript: {}

src/sort/MergeSort.ts

Lines changed: 47 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565
*/
6666

6767
import {
68-
CompareFn,
68+
CompareFn,
6969
} from '@/utils'
7070

7171
/**
@@ -74,56 +74,55 @@ import {
7474
* @performance O(log(n))
7575
*/
7676
const merge = <T>(data: T[], p: number, q: number, r: number, fn: CompareFn<T>): void => {
77-
const n1 = q - p + 1
78-
const n2 = r - q
77+
const n1 = q - p + 1
78+
const n2 = r - q
7979

80-
let i
81-
let j
82-
let k
80+
let i
81+
let j
82+
let k
8383

84-
const L: T[] = []
85-
const R: T[] = []
84+
const L: T[] = []
85+
const R: T[] = []
8686

87-
for (i = 0; i < n1; ++i) {
88-
L[i] = data[p + i]
89-
}
87+
for (i = 0; i < n1; ++i) {
88+
L[i] = data[p + i]
89+
}
9090

91-
for (j = 0; j < n2; ++j) {
92-
R[j] = data[q + j + 1]
93-
}
91+
for (j = 0; j < n2; ++j) {
92+
R[j] = data[q + j + 1]
93+
}
9494

95-
i = 0
96-
j = 0
97-
k = p // initial index of subarray
95+
i = 0
96+
j = 0
97+
k = p // initial index of subarray
9898

99-
// merge the array L, R back into data
100-
// while performing the sort operation
101-
while (i < n1 && j < n2) {
102-
if (1 > fn(L[i], R[j])) {
103-
data[k] = L[i]
104-
++i
105-
}
106-
else {
107-
data[k] = R[j]
108-
++j
109-
}
99+
// merge the array L, R back into data
100+
// while performing the sort operation
101+
while (i < n1 && j < n2) {
102+
if (1 > fn(L[i], R[j])) {
103+
data[k] = L[i]
104+
++i
105+
} else {
106+
data[k] = R[j]
107+
++j
108+
}
110109

111-
++k
112-
}
110+
++k
111+
}
113112

114-
// copy remaining elements of L
115-
while (i < n1) {
116-
data[k] = L[i]
117-
++i
118-
++k
119-
}
113+
// copy remaining elements of L
114+
while (i < n1) {
115+
data[k] = L[i]
116+
++i
117+
++k
118+
}
120119

121-
// copy remaining elements of R
122-
while (j < n2) {
123-
data[k] = R[j]
124-
++j
125-
++k
126-
}
120+
// copy remaining elements of R
121+
while (j < n2) {
122+
data[k] = R[j]
123+
++j
124+
++k
125+
}
127126
}
128127

129128
/**
@@ -132,13 +131,13 @@ const merge = <T>(data: T[], p: number, q: number, r: number, fn: CompareFn<T>):
132131
* @performance O(n)
133132
*/
134133
const sort = <T>(data: T[], p: number, r: number, fn: CompareFn<T>): void => {
135-
if (p < r) {
134+
if (p < r) {
136135
// same as (p + r) / 2 but avoids overflow for large p
137-
const q = Math.floor(p + (r - p) / 2)
138-
sort(data, p, q, fn)
139-
sort(data, q + 1, r, fn)
140-
merge(data, p, q, r, fn)
141-
}
136+
const q = Math.floor(p + (r - p) / 2)
137+
sort(data, p, q, fn)
138+
sort(data, q + 1, r, fn)
139+
merge(data, p, q, r, fn)
140+
}
142141
}
143142

144143
/**

0 commit comments

Comments
 (0)