카테고리 없음
알고리즘
이즈라핀
2020. 6. 16. 10:08
QuickSort Java
public class Sort {
// left 가 시작위취
// right가 종료 위치
// list가 정렬할 배열
public static void quickSort(int left, int right, int[] list) {
// 배열 출력
for (int x : list) {
System.out.print(x + "\t");
}
System.out.print("\n");
// 비교할 기준위치
int pivot = left;
// pivot이 위치해야할 자리를 저장
int j = pivot;
// 비교대상의 위치
int i = left + 1;
// 데이터가 개수가 1개 이상인 경우만 수행
if (left < right) {
// 비교는 두번째부터 끝까지
for (; i <= right; i = i + 1) {
// 기준 데이터가 더 크면
if (list[pivot] > list[i]) {
j = j + 1;
int temp = list[j];
list[j] = list[i];
list[i] = temp;
}
}
// 1회전이 끝나면 pivot 데이터를 자신의 자리로
// 이동
int temp = list[left];
list[left] = list[j];
list[j] = temp;
// pivot을 기준으로 왼쪽과 오른쪽 배열을 다시 수행
pivot = j;
quickSort(left, pivot - 1, list);
quickSort(pivot + 1, right, list);
}
}
public static void main(String[] args) {
int[] ar = { 32, 17, 24, 41, 29, 44, 51 };
quickSort(0, ar.length - 1, ar);
}
}
![]() |