: 이웃한 두 원소 중 큰 것을 뒤로 보내 정렬하는 방법
void bubbleSort(int [] arr){
for (int i = 1 ; i < arr.length ; i++){
for (int j = 0 ; j < arr.length - i ; j++){
if(arr[j]>arr[j+1])
swap(arr, j, j+1);
}
}
}
: 정렬되지 않은 원소 중 최솟값을 찾아 정렬된 부분 뒤에 위치시켜 정렬하는 방법
void selectionSort(int [] arr) {
for ( int i=0 ; i < arr.length ; i++){
int min = arr[i];
int minIdx;
for ( int j = i+1 ; j < arr.length ; j++){
if(arr[j] < min){
min = arr[j];
minIdx = j;
}
}
swap( arr, i, minIdx);
}
}
: 정렬된 부분에서 정렬되지 않은 첫 번째 원소가 들어갈 위치를 찾아 삽입하는 정렬 방법
void insertionSort(int [] arr){
for( int i = 1 ; i < arr.length ; i ++){
int insertedData = arr[i];
for(int j = i-1 ; j >= 0 ; j--){
if(arr[j] > insertedData){
arr[j+1] = arr[j];
} else {
break;
}
}
arr[i] = insertedData;
}
}
: 피벗을 중심으로 좌측은 피벗보다 작은 원소, 우측은 피벗보다 큰 원소로 분류함으로써 정렬하는 방법
void quickSort(int [] arr, int left, int right){
if(left >= right ) return;
int pivot = left;
int i = left + 1 ;
int j = right ;
do {
while(i < right && arr[i] < arr[pivot]) i++;
while(j > left && arr[j] > arr[pivot]) j--;
if(i < j)
swap(arr, i, j);
}while(i<j);
swap(arr, j, pivot);
quickSort(arr, left, j-1);
quickSort(arr, j+1, right);
}
: 힙 자료구조를 이용한 정렬 방법( all insertion -> all delete )
:
: 기수를 기준으로 정렬하는 방법
: 크기를 기준으로 계수하여 정렬하는 방법
: