[정렬] 4.퀵정렬 (Quick Sort)
public class QuickSort { public static void main(String args[]){ int array[] = {10, 87, 2, 42, 51, 12, 5, 29, 78, 50}; //quicSort(배열, 배열첫번째인자(0), 배열마지막인자(9)) Sort.quickSort(array, 0 ,array.length-1); //정렬된 배열 출력 for(int num : array){ System.out.print(num+" "); } } } public class Sort { // 퀵정렬 : 기준값(pivot)과 비교해 작은수는 왼쪽 큰수는 오른쪽으로 분할을 하고 분할 된 배열들을 재귀함수를 이용해서 똑같이 분할 정렬한다. public static void quickSor..
Programing/Algorithm
2013. 1. 10. 22:54
[정렬] 버블, 삽입, 선택정렬 비교
가장 기본적인 정렬 알고리즘인 버블, 삽입, 선택정렬은 모두 간단하게 구현이 가능하다. 하지만 데이터 수가 조금만 많아지면 매우 느려 지므로(시간복잡도 : n^2) 실제로 사용하기에는 모두 비효율적인 알고리즘이다.그나마 삽입정렬이 가장 우수하고, 버블정렬이 가장느리다고 할 수 있다. 삽입정렬은 최악의 경우 n^2 이지만 정렬 상태에 따라 최대 n까지 시간복잡도가 개선된다. 또한 시간복잡도 계산에 사용된 비교연산만 이외에 실제 교환연산을 포함하면 버블정렬의 교환연산이 가장많이 나타난다. 따라서 버블정렬이 가장 느리다고 할 수 있다.
Programing/Algorithm
2013. 1. 6. 23:15