개발 지식/알고리즘
선택 정렬, 버블 정렬, 퀵 정렬, 삽입 정렬
JUTABI
2020. 6. 25. 20:37
JAVA로 작성되었습니다.
- 선택 정렬
public List<Integer> list_selection(List<Integer> list) {
int least;
for (int i = 0; i < list.size() - 1; i++) {
least = i;
for (int j = i + 1; j < list.size(); j++) {
if (list.get(least) > list.get(j)) {
least = j;
}
}
if (i != least) {
int temp = list.get(i);
list.set(i, list.get(least));
list.set(least, temp);
}
}
return list;
}
-버블 정렬
public List<Integer> list_bubble(List<Integer> list) {
for (int i = list.size() - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
if(list.get(j) > list.get(j + 1)) {
int temp = list.get(j + 1);
list.set(j + 1, list.get(j));
list.set(j, temp);
}
}
}
return list;
}
- 퀵 정렬
public List<Integer> list_quick(List<Integer> list, int left, int right) {
int pivot = left;
int low = left + 1;
int high = right;
if (right > left) {
while (low < high) {
while (list.get(low) <= list.get(pivot) && low < right) {
low++;
}
while (list.get(high) > list.get(pivot) && high > left) {
high--;
}
if (low < high) {
int temp = list.get(low);
list.set(low, list.get(high));
list.set(high, temp);
}
}
if (list.get(high) <= list.get(pivot)) {
int temp = list.get(high);
list.set(high, list.get(pivot));
list.set(pivot, temp);
pivot = high;
}
QuickSort quickSort = new QuickSort();
list = quickSort.list_quick(list, left, pivot - 1);
list = quickSort.list_quick(list, pivot + 1, right);
}
return list;
}
- 삽입 정렬
public List<Integer> list_insertion(List<Integer> list) {
for (int i = 1; i < list.size(); i++) {
int j, value = list.get(i);
for (j = i - 1; j >= 0 && value < list.get(j); j--) {
list.set(j + 1, list.get(j));
}
list.set(j + 1, value);
}
return list;
}