Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- lob
- XSS Game
- 웹페이지 만들기
- siss
- 자료구조 복습
- 기계학습
- hackctf
- BOJ Python
- Javascript
- SWEA
- hackerrank
- 백준
- PHP 웹페이지 만들기
- 생활코딩
- HTML
- BOJ
- 파이썬
- Python
- 풀이
- CSS
- 드림핵
- WarGame
- 머신러닝
- c
- 숙명여자대학교 정보보안동아리
- 숙명여자대학교 정보보안 동아리
- Sookmyung Information Security Study
- c++
- C언어
- The Loard of BOF
Archives
- Today
- Total
혜랑's STORY
[HackerRank_C] Quicksort1 - partition 본문
자료구조 복습용 sorting 문제입니다.
-문제
퀵 정렬을 할 때, pivot을 arr[0]으로 사용하여 left, equal, right을 분류하고 그 리스트를 반환한다.
- 풀이
int* quickSort(int arr_count, int* arr, int* result_count) {
int *result = (int*)malloc(sizeof(int)*arr_count);
int *left = (int*)malloc(sizeof(int)*arr_count);
int *equal = (int*)malloc(sizeof(int)*arr_count);
int *right = (int*)malloc(sizeof(int)*arr_count);
int pivot = arr[0], left_pos = 0, equal_pos = 0, right_pos = 0, result_pos = 0;
for(int i=0; i<arr_count; i++){
if(arr[i]>pivot)
*(right + right_pos++) = arr[i];
else if(arr[i]<pivot)
*(left + left_pos++) = arr[i];
else
*(equal + equal_pos++) = arr[i];
}
for(int i=0; i<left_pos; i++)
*(result + result_pos++) = left[i];
for(int i=0; i<equal_pos; i++)
*(result + result_pos++) = equal[i];
for(int i=0; i<right_pos; i++)
*(result + result_pos++) = right[i];
*result_count = result_pos;
return result;
}
- arr_count 크기 만큼 left, equal, right, result 배열을 만들어 준다.
- arr_count 크기만큼 for문을 실행하는데 만약 pivot이 더 크다면 right, 작다면 left, 같다면 equal 배열에 arr[i]값을 넣는다.
- result에 left, equal, right 순서로 값을 넣어주고, result_count에 result_pos 값을 넣어준다. (이후 프린트에 사용)
- 실행결과
'2021 SISS 21기 활동 > 1학기 C' 카테고리의 다른 글
[HackerRank_C] Tree: Height of a Binary Tree (0) | 2021.05.17 |
---|---|
[HackerRank_C] Tree: Inorder, Postorder Traversal (0) | 2021.05.11 |
[HackerRank_C] Sherlock and Array (0) | 2021.04.11 |
[HackerRank_C] Insertion Sort - Part 2 (0) | 2021.03.29 |
[HackerRank_C] Insertion Sort - Part 1 (0) | 2021.03.28 |