안녕하세요 . 오늘은 숫자 내림치순, 오름차순으로 정렬하는 알고리즘을 알아보겠습니다 .
오름차순 정렬로 한다고 치고, 숫자 3개 A,B,C가 있습니다
첫 번째 숫자와 두 번째 세 번째 숫자를 비교한다음에 첫번째숫자가 더 크면 위치를 바꿉니다
두 번째 숫자와 세 번째 숫자를 비교한 다음에 두 번째 숫자가 크면 세 번째 숫자와 위치를 바꿉니다
예시) 오름차순 정렬 5,2,1
스텝1)
5, 2와 비교함. 5가 더 크니 숫자를 바꿈 -> 2,5,1
2와 1을 비교함. 2가 더 크니 숫자를 바꿈 -> 1,5,2
스텝2)
5와 2를 비교함. 5가 더 크니 숫자를 바꿈 -> 1,2,5
오름차순 코드
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 | #include<stdio.h> #include<stdlib.h> int main() { int N,i,j,temp; scanf("%d",&N); int *num = (int*)malloc(sizeof(int)*N); for(i=0; i<N; i++) scanf("%d",&num[i]); printf("\n\n"); for(i=0;i<N;i++) { for(j=i+1;j<N;j++) { if(num[j]<num[i]) { temp =num[i]; num[i] = num[j]; num[j] = temp; } } } for(i=0; i<N; i++) printf("%d\n",num[i]); } |
(내림차순이면 22번째줄의 부등호를 바꿔주면 됩니다.)
23번째줄에서 num[j] < num[i]를 비교합니다. i번째자리와 i+1번째, i+2번째.....자리를 비교한다는 의미입니다.
'기타지식들 > 알고리즘' 카테고리의 다른 글
알고리즘 순열 C언어로 구현하기 (0) | 2021.01.18 |
---|---|
두 숫자 바꾸는 방법,변수교환 방법 (0) | 2021.01.16 |
브루트 포스법이란? (0) | 2020.09.06 |
세 값의 최대값 구하기 알고리즘 (0) | 2020.07.12 |
알고리즘 선형검색(선형탐색)이란? (0) | 2020.06.14 |