티스토리 뷰
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | #include <stdio.h> void swap(int arr[], int a, int b){ int temp = arr[a]; arr[a] = arr[b]; arr[b] = temp; } void q_sort(int arr[], int s, int e){ if(e-s<1) return; if(e-s==1) { if(arr[s]> arr[e]) swap(arr, s,e); return; } if(e-s==2){ int p = s+1; if(arr[s] > arr[p]) swap(arr,s,p); if(arr[p]>arr[e]) swap(arr,p,e); if(arr[s] > arr[p] ) swap(arr,p,s); return; } int c = (e+s)/2; if(arr[c]> arr[s]) swap(arr,c,s); if(arr[s]>arr[e]) swap(arr,s,e); if(arr[c]>arr[s]) swap(arr,c,s); c = e; int p = s; while(p!=c ){ if(p<c){ if(arr[p]<arr[c]){ c--; } else{ swap(arr,p,c); int temp = p; p=c; c= temp; c++; } } else{ if(arr[p]<arr[c]){ swap(arr,p,c); int temp = p; p=c; c= temp; c--; } else{ c++; } } } q_sort(arr,s,p-1);q_sort(arr,p+1,e); } int main() { int N = 0; scanf("%d", &N); int arr[100]; for(int i =0; i<N;i++){ scanf(" %d",&arr[i]); } q_sort(arr,0,N-1); for(int i =0; i<N;i++){ printf("%d\n",arr[i]); } return 0; } | cs |
'digitalization' 카테고리의 다른 글
그래도 수명이 절반이 되어서는 풀이 및 코드 (1) | 2019.08.26 |
---|---|
삼성전자 sw 상시 B형(professional) 후기 - 삼성전자 용인 서천 인재개발원에서 (0) | 2019.08.24 |
삼성 코딩 테스트 B형을 위한 힙 heap 구현 (0) | 2019.08.19 |
삼성 코딩 테스트용 양방향 링크드 리스트 linked list(스택 큐로 활용) (0) | 2019.08.19 |
2019년 5월, 삼성전자 인재개발원에서 상시sw 역량테스트 A형 후기(feat. 삼성 신입 sw역량테스트와 비교) (0) | 2019.05.11 |
댓글