FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
pythonprogram/QuickSelect.py at master · Azbar-coder/pythonprogram · GitHub
Azbar-coder
pythonprogram
Repository navigation
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
pythonprogram
/
QuickSelect.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
29 lines (27 loc) · 975 Bytes
Breadcrumbs
pythonprogram
/
QuickSelect.py
Copy path
File metadata and controls
29 lines (27 loc) · 975 Bytes
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
def
quickselect
(
array
,
startind
,
endind
,
position
):
while
True
:
pivotind
=
startind
leftmark
=
startind
+
1
rightmark
=
endind
while
leftmark
<=
rightmark
:
if
array
[
leftmark
]
>
array
[
pivotind
]
and
array
[
rightmark
]
<
array
[
pivotind
]:
swap
(
leftmark
,
rightmark
,
array
)
if
array
[
leftmark
]
<=
array
[
pivotind
]:
leftmark
+=
1
if
array
[
rightmark
]
>=
array
[
pivotind
]:
rightmark
-=
1
swap
(
pivotind
,
rightmark
,
array
)
if
rightmark
==
position
:
print
(
array
[
rightmark
])
return
elif
rightmark
<
position
:
startind
=
rightmark
+
1
else
:
endind
=
rightmark
-
1
def
swap
(
one
,
two
,
array
):
array
[
one
],
array
[
two
]
=
array
[
two
],
array
[
one
]
for
_
in
range
(
int
(
input
())):
n
=
int
(
input
())
arr
=
list
(
map
(
int
,
input
().
split
()))
k
=
int
(
input
())
quickselect
(
arr
,
0
,
n
-
1
,
k
-
1
)
Back
|
FazBrowse Home
|
New Git URL