-
C언어 오름차순 정렬컴퓨터+a/코딩테스트 연습 2021. 2. 27. 18:31
C언어를 배울때 가장 기본으로, 자주 쓰이는 코드인데 오랜만에 보면 조금 헷갈릴 때가 있어서 정리해두기로.
아래 방법이 가장 단순한 방법
// A_len : 배열 길이, A : 배열 이름 int i, j, temp; for(i=0; i<A_len; i++) { for(j=i+1; j<A_len+1; j++) { if(A[i] > A[j]) { temp = A[i]; A[i] = A[j]; A[j] = temp; } } }
첫 번째 항목(기준)과 두 번째~A_len번째 항목을 순서대로 비교하여 첫 번째 항목보다 다른 항목이 크면 값을 바꿔주는 방법.
이 방법은 단순하지만 값을 여러번 바꾸는 단점이 있다.
그걸 해결해 줄 방법이 아래 방법
// A_len : 배열 길이, A : 배열 이름 int i, j, min, temp; for(i=0; i<A_len; i++) { min = i; for(j=i+1; j<A_len+1; j++) { if(A[min] > A[j]) { min = j; } } if(min != i) { temp = A[i]; A[i] = A[min]; A[min] = temp; } }
이렇게 코딩하면, 순서를 매번 바꾸는 것이 아니라 각 요소의 값에 들어갈 위치를 기억해 뒀다가 한 번만 바꾸면 되므로 조금 더 효율적.
그런데 왜 코딩 라인이 안 맞을까.
C언어 코딩 연습을 하면서 깨닫는데 확실히 C언어보다는 JAVA로 많은 사람들이 공부하고 있다는 느낌이 든다.
검색해도 주로 JAVA 코드가 나오는 편.
JAVA 공부의 필요성을 더 느낀다.
728x90'컴퓨터+a > 코딩테스트 연습' 카테고리의 다른 글
C언어 malloc, calloc, realloc, free (0) 2021.02.27 코딩테스트 대비, 프로그래머스 정확도/효율성 (0) 2021.02.27 C언어 제곱근, 거듭제곱 구하기 / sqrt(), pow() 함수 (0) 2021.02.26 백준 10171번 고양이 Java 코딩 (0) 2021.02.09