FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
Java-Programming-Exercises/QuickSort.java at master · RoyTien/Java-Programming-Exercises · GitHub
RoyTien
/
Java-Programming-Exercises
Public
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Issues
0
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
Java-Programming-Exercises
/
QuickSort.java
Copy path
More file actions
More file actions
Latest commit
History
History
History
32 lines (29 loc) · 817 Bytes
Breadcrumbs
Java-Programming-Exercises
/
QuickSort.java
Copy path
File metadata and controls
32 lines (29 loc) · 817 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
30
31
32
/*
* Average performance : O(n log n)
* Worst-case performance O(n * n)
* Space complexity : O(log n)
*/
void
quickSort
(
int
arr
[],
int
left
,
int
right
){
int
index
=
partition
(
arr
,
left
,
right
);
if
(
left
<
index
-
1
){
// Sort the left part
quickSort
(
arr
,
left
,
index
-
1
);
}
if
(
index
<
right
){
// Sort the right part
quickSort
(
arr
,
index
,
right
);
}
}
int
partition
(
int
arr
[],
int
left
,
int
right
){
int
pivot
=
arr
[(
left
+
right
) /
2
];
// Find out a pivot
while
(
left
<=
right
){
// Find out the elements on left which should be moved to right
while
(
arr
[
left
] <
pivot
)
left
++;
// Find out the element on right which should be moved to left
while
(
arr
[
right
] <
pivot
)
right
--;
if
(
left
<=
right
){
swap
(
arr
,
left
,
right
);
// swap these two elements
left
++;
right
--;
}
}
return
left
;
}
Back
|
FazBrowse Home
|
New Git URL