C언어 오름차순으로 정렬하기

  안녕하세요..^^* 오늘은 배열을 오름차순으로 정리하는 법을 배워 보고자 합니다. 오름 차순이란 작은 값부터 큰 값으로 점점 나아가는 것이죠. 그럼 지금부터 한번 시작해 보도록 하겠습니다.

 

 

 

  입력할 숫자 5를 누르고 즉 5개를 입력하는 것이죠. 5 4 3 2 1 을 누르니까 오름차순으로 1 2 3 4 5로 되어 버렸습니다. 이걸 이해하기 전에 조금 더 쉬운 소스코드를 이해해 보도록 하죠.

 

 

  5를 똑같이 치고 5 6 7 0 1을 눌렀습니다. 0 6 7 5 1이 나왔네요. 이건 어떤 소스코드냐하면 제일 앞의 배열에 있는 값보다 작은 값이 나온다면 바꿔치는 것입니다. 4번째가 0이니 5보다 작으니까 바꿔치고 0과 1은 0이 더 작으니 그냥 나두는 소스코드이죠.^^*

 

  쉬운 소스코드를 보죠. for문을 쓰고 일단 temp를 써서 a[i]를 temp에 저장한 다음 a[j]를 a[i]에 저장 그럼 a[j]는 a[i]가 되겠죠. 그 다음에 temp를 a[j]에 저장하면 a[i]==temp==a[j]가 되어서 바꿔 치는 거겠죠.ㅎㅎ a[i]>a[j]즉 j가 1번째 있는 배열이 다른 인덱스의 배열보다 더 작다면 바꿔 쳐 버리는 것이죠.


 

  그 다음에는 이제 본격적으로 오름차순으로 해 볼 차례입니다. 이번에는 두번 for문을 돌렸네요. 그럼 일단 j를 1을 집어 넣어 보죠. 그럼 j보다 작은 i가 0하나만 그 다음에 j가 2라면 a[i]==a[0],a[1]요 두개만 바꿔치기를 하면서 계속 나가는 것이죠. 이 과정을 계속하다 보면 작은 것부터 계속 바꿔치기 하니까 결국 오름차순이 될 수 밖에 없는 것입니다.

 

 

  어떤가요?? 별로 어렵지 않죠?? ㅎㅎ 소스코드를 짜 보면 정말 쉬운데 안짜보면 또 어려운게 c언어입니다. 계속 짜봐야 실력이 는다는 것을 알 수 있을 것입니다. 그럼 오늘은 여기서 이만 물러나도록 할께요..^^*

댓글

Designed by JB FACTORY