Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- big data
- redhat
- 재귀
- storage
- Data Structure
- hadoop
- linux
- 스토리지
- algorithm
- 하둡
- recursive
- docker
- data
- 자료구조
- 빅데이터
- 스프링
- 아마존
- 레드햇
- 도커
- java
- sort
- 자바
- 리눅스
- rhcsa
- 알고리즘
- Amazon
- Spring
- Redshift
- 설치
- AWS
Archives
- Today
- Total
Developer MJ
[Java] 퀵정렬 (Quick Sort) 본문
기준키(pivot)를 기준으로 작거나 같은 값을 지닌 데이터는 앞으로, 큰 값을 지닌 데이터는 뒤로 가도록 정렬
import java.util.Scanner;
class Solution {
static int input[];
static int num;
static void quickSort(int first, int last)
{
int temp;
if (first < last)
{
int pivot = first;
int i = first;
int j = last;
while (i < j)
{
while (input[i] <= input[pivot] && i < last)
{
i++;
}
while (input[j] > input[pivot])
{
j--;
}
if (i < j)
{
temp = input[i];
input[i] = input[j];
input[j] = temp;
}
}
temp = input[pivot];
input[pivot] = input[j];
input[j] = temp;
quickSort(first, j - 1);
quickSort(j + 1, last);
}
}
static void printResult()
{
for (int i = 0; i < num; ++i)
{
System.out.print(input[i] + " ");
}
System.out.println();
}
public static void main(String arg[]) throws Exception {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for (int test_case = 1; test_case <= T; test_case++)
{
num = sc.nextInt();
input = new int[num];
for (int i = 0; i < num; i++)
{
input[i] = sc.nextInt();
}
quickSort(0, num - 1);
System.out.print("#" + test_case + " ");
printResult();
}
sc.close();
}
}
'Programming > Code' 카테고리의 다른 글
[C/C++] DFS/BFS 구현 (0) | 2019.04.24 |
---|---|
[C/C++] Binary Search Tree 구현 (0) | 2019.04.24 |
[Java] 계수정렬(Counting Sort) (0) | 2019.04.18 |
[Java] 삽입 정렬 (Insertion Sort) (0) | 2019.04.15 |
[Java] Queue (0) | 2019.02.13 |