코딩/C, C++

퀵 정렬(quick sort)은 기준값(pivot)을 기준으로 작거나 같은 값을 지닌 데이터는 앞으로, 큰 값을 지닌 데이터는 뒤로 가도록 하여 작은 값을 갖는 데이터와 큰 값을 갖는 데이터로 분리해가며 정렬하는 방법이다. 양쪽에 포인트를 잡고, 정렬 기준에 맞는지를 판단하여 맞지않는 점끼리 스왑한다. 스왑이 끝나면 pivot을 기준 위치에 넣어준다. 재귀 voidft_swap(int *l_arr, int *r_arr) { int tmp; tmp = *l_arr; *l_arr = *r_arr; *r_arr = tmp; } voidquick_sort(int *arr, int start, int end) { ints_pnt; inte_pnt; intpivot; s_pnt = start; e_pnt = end..
continue와 break문을 배우는 도중 예시 코드를 보고 있는데, 이걸로 소수를 출력할 수 있지 않을까 싶었다. 그래서 강의를 멈추고 소수를 출력하는 코드를 만들어 봤다. 로직은 간단하다. 1. num에 숫자를 넣어 소수가 되는 것만 bottle에 담는다. 2. 출력한다. 좀 자세히 쓰면 1) bottle[0]에 제일 작은 소수 2를 담는다. 2) 2가 이미 bottle에 담겨있기 때문에 num은 3부터 시작한다. 3) while문을 이용해 num을 bottle 안에 있는 소수들로 한 번씩 나눠본다. 4) 나눠지면 소수가 아니므로 함수를 탈출하고 num++; 5) 안 나눠지면 num = 소수이다, bottle의 끝자락에 bottle[i]가 위치하게 되고, num출력과 bottle[i]에 num담기 ..
구구단을 for문을 이용해 나타내면 아래와 같다. for (cur = 2; cur < 10; cur++) { for (i = 1; i < 10; i++) { printf("%d * %d = %d \n", cur, i, cur * i); } printf("\n"); } 위와 같은 코드를 짜면 2~9단까지 출력이 된다. 여기서 특정행만 출력하고 싶다면 if로 조건을 주고 continue문을 이용해 특정 조건을 건너뛰면 된다. 예를 들어 짝수단만 나타내고 싶다면 for (cur = 2; cur < 10; cur++) { if (cur % 2 != 0) continue; for (i = 1; i < 10; i++) { printf("%d * %d = %d \n", cur, i, cur * i); } printf..
HEOM
'코딩/C, C++' 카테고리의 글 목록