선택정렬 구현해보기 (feat. Flow Chart)

2019. 9. 17. 21:42·C/C

1. 순서도

선택정렬 순서도(printf 출력문은 순서도에서 제외)

2. 구현

#include <stdio.h>

int main(void)
{
    int index = 10;
    int arr[10] = { 10, 1, 5, 8, 7, 6, 4, 3, 2, 9 };
    int i, j , temp, min;

    printf("정렬 전 : ");
    for (int i = 0; i < index; i++)
    {
        printf("%d ", arr[i]);
    }
    printf("\n");

    for (i = 0, j = i + 1; i < index - 1 ;  i++, j = i + 1)
    {
        min = arr[i];
        
        for (; j < index; j++) 
            /* 한바퀴 다 순회하면서  min에 arr[j]넣고 j값 temp에 킵하기
            이부분에 문제 있었어... j가 10일때 아래 문장을 수행하면 else부분이 실행돼..
            부등호 <=, < 조심! Out of Index
            */
        {
            if (min < arr[j])
                continue;
            else
            {
                temp = j;
                min = arr[j];
            }
        }
        arr[temp] = arr[i]; // 이부분?! 
        arr[i] = min; // 이부분?!
    }
    printf("정렬 후 : ");
    for (int i = 0; i < index; i++)
    {
        printf("%d ", arr[i]);
    }
    printf("\n");

    return 0;
}​

 

3. Mistake

도중에 배열의 index 설정하는 부분에서 부등호를 <로 해야할 것을 <=로 해놨다가

배열 index를 넘어가는 바람에.. 정렬후 첫 값이 0으로 나왔었다..

 

syntax error보다 sementic error가 찾는데 더 오래걸린다는 걸 느꼈다.

끈기를 가지고 차분히 짚어가며..

'C > C' 카테고리의 다른 글

Memory Map 이해하기(Feat.성적처리 프로그램 소스)  (0) 2019.10.02
2차원 배열 이해  (0) 2019.09.29
배열 초기화 사소한 Tip  (0) 2019.09.26
성적 처리 프로그램 (분석->설계->구현)  (0) 2019.09.20
calloc 함수  (0) 2019.06.10
'C/C' 카테고리의 다른 글
  • 2차원 배열 이해
  • 배열 초기화 사소한 Tip
  • 성적 처리 프로그램 (분석->설계->구현)
  • calloc 함수
M_Falcon
M_Falcon
  • M_Falcon
    Falcon
    M_Falcon
  • 전체
    오늘
    어제
    • 분류 전체보기 (432)
      • Web (16)
        • Nodejs (14)
        • Javascript (23)
        • FrontEnd (4)
      • DataBase (39)
        • Fundamental (1)
        • Redis (4)
        • PostgreSQL (10)
        • NoSQL (4)
        • MySQL (9)
        • MSSQL (3)
        • Error (4)
      • Algorithm (79)
        • Algorithm (문제풀이) (56)
        • Algorithm (이론) (23)
      • JVM (65)
        • Spring (13)
        • JPA (5)
        • Kotlin (13)
        • Java (24)
        • Error (7)
      • 기타 (70)
        • Kafka (3)
        • Kubernetes (3)
        • Docker (13)
        • git (19)
        • 잡동사니 (27)
      • 재테크 (11)
        • 세무 (4)
        • 투자 (3)
        • 보험 (0)
      • BlockChain (2)
        • BitCoin (0)
      • C (32)
        • C (10)
        • C++ (17)
        • Error (3)
      • Low Level (8)
        • OS (3)
        • 시스템 보안 (5)
      • 네트워크 (3)
      • LINUX (30)
        • Linux (26)
        • Error (4)
      • 저작권과 스마트폰의 이해 (0)
      • 생각 뭉치 (6)
      • 궁금증 (2)
      • Private (4)
        • 이직 경험 (0)
        • 꿈을 찾아서 (1)
      • Android (21)
        • OS (4)
  • 블로그 메뉴

    • 홈
    • WEB
    • 알고리즘
    • DataBase
    • Linux
    • Mobile
    • C
    • 방명록
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    Bitcoin
    kafka
    linux
    android
    java
    Programmers
    PostgreSQL
    Spring
    Kotlin
    javascript
    C++
    백준
    docker
    database
    algorithm
    JPA
    Git
    ubuntu
    알고리즘
    프로그래머스
  • hELLO· Designed By정상우.v4.10.3
M_Falcon
선택정렬 구현해보기 (feat. Flow Chart)
상단으로

티스토리툴바