-
선택 정렬, 버블 정렬, 퀵 정렬, 삽입 정렬개발 지식/알고리즘 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; }
'개발 지식 > 알고리즘' 카테고리의 다른 글
메모리 관리 (0) 2020.06.30 Linked List (0) 2020.06.29 포인터, 매개변수, CBV, CBR (0) 2020.06.29 배열 접근 (0) 2020.06.29 infix, postfix (0) 2020.06.29