SlideShare a Scribd company logo
1 of 47
Download to read offline
소프트웨어 & 프로그래밍 (2)
이민석
컴퓨터공학부, 국민대학교
http://scratchback.net/mis026/entry/
Naver ‘핫토픽 키워드’
2015년 5월 9일 오전 8시, 11시, 14시
세상의 많은 문제의 본질은...
• 데이터 사이의 관계를 이해하는 것
데이터의 순서
 정렬 (Sorting) : 어떤 기준이든.
데이터의 소속
 분류 (Categorizing) 및 인식 : 어떤 구분이든.
데이터의 연관성
 관계 (Relation)의 설정 : 어떤 이유이든.
데이터의 변화
 추세(Trend)의 확인 : 어떤 관점이든.
데이터의 소속
• 분류의 문제
Spam 메일 vs 중요 메일
• 인식의 문제
사과인가 배인가?
개인가 고양이인가?
이 자는 누구인가?
나이는 몇인가?
데이터의 연관성
• 두 데이터 사이의 관계
친구인가?
그렇고 그런 관계인가?
데이터의 변화
• 추세의 확인과 예측
지금까지는 어땠는데… 다음은 어떻게 될 것인가?
요약 (예, FinTech)
데이터
고객 은행
분류
관계
인식
변화
정렬
수집
신용도
• 고개에게 편리함을 제공
• 데이터를 수집
• 수집된 데이터를 열나게 처리
• 성향과 신용도를 파악
세상의 많은 문제의 본질은...
• 데이터 사이의 관계를 이해하는 것
데이터의 순서
 정렬 (Sorting) : 어떤 기준이든.
데이터의 소속
 분류 (Categorizing) 및 인식 : 어떤 구분이든.
데이터의 연관성
 관계 (Relation)의 설정 : 어떤 이유이든.
데이터의 변화
 추세(Trend)의 확인 : 어떤 관점이든.
데이터의 정렬 방식
• Simple sorts
 Insertion sort
 Selection sort
• Efficient sorts
 Merge sort
 Heap sort
 Quick sort
• Bubble sort and variants
 Bubble sort
 Shell sort
 Comb sort
• Distribution sort
 Counting sort
 Bucket sort
 Radix sort
• …
문제는 다 같다:
데이터를 순서대로 정렬하는 것
답은 다르다:
데이터의 모양에 따라서
http://en.wikipedia.org/wiki/Sorting_algorithm
Selection Shell Insertion
Merge Quick Heap
Bubble Comb Cocktail
https://www.youtube.com/watch?v=ZZuD6iUe3Pc
세상에 조건 없는 정답은 없다.
• 9가지 정렬 프로그램의 비교 (4 종류의 데이터)
Random (임의의 데이터)
Few Unique (몇 종류로 구분되는 데이터)
Reversed (완전히 순서가 거꾸로 된 데이터)
Almost Sorted (이미 거의 정렬이 된 데이터)
이 다섯 개를 정렬해보자
1
4
5
정답은 누가 봐도
2
3
1
3
2
4
5
정답은 누가 봐도
정답은 누가 봐도
컴퓨터는 그 누가가 아니다.
단계적인 접근이 필요
1
4
5
Bubble Sort: (1)
옆의 것과 비교하여 연속적으로 자리 바꾸기
2
3
비교하여 왼쪽이 크면 자리 바꾸기
http://en.wikipedia.org/wiki/Bubble_sort
1
4
5
Bubble Sort: (2)
옆의 것과 비교하여 연속적으로 자리 바꾸기
2
3
비교하여 왼쪽이 크면 자리 바꾸기
1
4
5
Bubble Sort: (3)
옆의 것과 비교하여 연속적으로 자리 바꾸기
2
3
비교하여 왼쪽이 크면 자리 바꾸기
1
4
5
Bubble Sort: (4)
옆의 것과 비교하여 연속적으로 자리 바꾸기
2
3
비교하여 왼쪽이 크면 자리 바꾸기
1
4
5
Bubble Sort: (*)
옆의 것과 비교하여 연속적으로 자리 바꾸기
2
3
돌아가서 처음부터 다시 (두 번째 키 큰 놈 옮기기)
제일 키 큰 놈
옮기기 완료
1
4
5
Bubble Sort: (5)
옆의 것과 비교하여 연속적으로 자리 바꾸기
2
3
비교하여 왼쪽이 크면 자리 바꾸기
1
4
5
Bubble Sort: (6)
옆의 것과 비교하여 연속적으로 자리 바꾸기
2
3
비교하여 왼쪽이 크면 자리 바꾸기
1
4
5
Bubble Sort: (7)
옆의 것과 비교하여 연속적으로 자리 바꾸기
2
3
비교하여 왼쪽이 크면 자리 바꾸기
1
4
5
Bubble Sort: (*)
옆의 것과 비교하여 연속적으로 자리 바꾸기
2
3
돌아가서 처음부터 다시 (세 번째 키 큰 놈 옮기기)
1
4
5
Bubble Sort: (8)
옆의 것과 비교하여 연속적으로 자리 바꾸기
2
3
비교하여 왼쪽이 크면 자리 바꾸기
1
4
5
Bubble Sort: (9)
옆의 것과 비교하여 연속적으로 자리 바꾸기
2
3
비교하여 왼쪽이 크면 자리 바꾸기
1
4
5
Bubble Sort: (*)
옆의 것과 비교하여 연속적으로 자리 바꾸기
2
3
돌아가서 처음부터 다시 (세 번째 키 큰 놈 옮기기)
1
4
5
Bubble Sort: (10)
옆의 것과 비교하여 연속적으로 자리 바꾸기
2
3
비교하여 왼쪽이 크면 자리 바꾸기
1
4
5
Bubble Sort: (*)
옆의 것과 비교하여 연속적으로 자리 바꾸기
2
3
Scratch로 구현한 Bubble Sort
https://scratch.mit.edu/projects/60531554/#editor
Bubble Sort: (*)
옆의 것과 비교하여 연속적으로 자리 바꾸기
N  정렬할 원소 개수
(값을 바꾼 적*이 있다면) 다음을 계속 반복 (= 최대 N-1번)
처음 원소부터 N-1 번째 원소까지 다음을 차례로 반복
만약 (현재 원소 값 > 오른쪽 원소 값) 이면
값을 맞바꿈*
한 칸 오른쪽으로 이동
N  N - 1
임의 순서의 데이터 (20개) 준비 과정
난수 얻어오기
이미 목록에 있는
숫자이면
다시 얻어오기
Order 목록에 추가하기
Bubble Sort: 정렬 알고리즘
값
맞바꾸기
비교 후
A와 B 값 바꾸기
X  A
A  B
B  X
* 이 알고리즘은 당연히 더 개선할 여지가 있습니다.
Bar 그리고 연주하기
Bar를 높이 만큼 그리기
이전에 그린 Bar 지우기
높이에 맞춰 연주하기
1
4
5
Insertion Sort: (1)
차례로 내 자리에 끼어 들어가기
2
3
http://en.wikipedia.org/wiki/Insertion_sort
앞에 것들과 비교하여 내 자리로 들어가기
*
3을 1의 앞에 넣기
1
4
5
Insertion Sort: (2)
차례로 내 자리에 끼어 들어가기
2
3
앞에 것들과 비교하여 내 자리로 들어가기
*
2를 1 앞에 넣기
1
4
5
Insertion Sort: (3)
차례로 내 자리에 끼어 들어가기
2
3
앞에 것들과 비교하여 내 자리로 들어가기
*
1, 2, 3을 한 칸씩 옮기고
4을 3 앞에 넣기
1
4
5
Insertion Sort: (4)
차례로 내 자리에 끼어 들어가기
2
3
앞에 것들과 비교하여 내 자리로 들어가기
*
1, 2, 3, 4를 한 칸씩 옮기고
5를 4 앞에 넣기
1
4
5
Insertion Sort: (*)
차례로 내 자리에 끼어 들어가기
2
3
Scratch로 구현한 Insertion Sort
https://scratch.mit.edu/projects/60531222/#editor
Insertion Sort:
차례로 내 자리에 끼어 들어가기
두 번째 원소부터 마지막 원소까지 다음을 반복
V  현재 위치의 원소 값
현재 위치 왼쪽 원소부터 첫 원소까지 차례로 다음을 반복
만약 (V < 해당 원소 값) 이면
끼워 넣을 위치로 새로 지정
해당 원소 값은 오른쪽으로 이동
아니면
반복 그만
왼쪽으로 한 칸 이동
끼워 넣을 위치의 원소 값  V
V
Insertion Sort: 정렬 알고리즘
자기보다
앞쪽의
키 큰놈들
한 칸씩
옮기기
자기 자리에 끼워 넣기
* 이 알고리즘은 당연히 더 개선할 여지가 있습니다.
끝

More Related Content

Viewers also liked

국민대-컴퓨터프로그래밍-2017-1-오프라인강좌
국민대-컴퓨터프로그래밍-2017-1-오프라인강좌국민대-컴퓨터프로그래밍-2017-1-오프라인강좌
국민대-컴퓨터프로그래밍-2017-1-오프라인강좌Minsuk Lee
 
소프트웨어, 정말 되는 건가?
소프트웨어, 정말 되는 건가?소프트웨어, 정말 되는 건가?
소프트웨어, 정말 되는 건가?Minsuk Lee
 
소프트웨어, 소프트웨어 개발자
소프트웨어, 소프트웨어 개발자소프트웨어, 소프트웨어 개발자
소프트웨어, 소프트웨어 개발자Minsuk Lee
 
국민대학교 컴퓨터프로그래밍
국민대학교 컴퓨터프로그래밍국민대학교 컴퓨터프로그래밍
국민대학교 컴퓨터프로그래밍Minsuk Lee
 
Open Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code reviewOpen Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code reviewMinsuk Lee
 
자기소개서, 이력서 쓰는 법
자기소개서, 이력서 쓰는 법자기소개서, 이력서 쓰는 법
자기소개서, 이력서 쓰는 법Minsuk Lee
 

Viewers also liked (6)

국민대-컴퓨터프로그래밍-2017-1-오프라인강좌
국민대-컴퓨터프로그래밍-2017-1-오프라인강좌국민대-컴퓨터프로그래밍-2017-1-오프라인강좌
국민대-컴퓨터프로그래밍-2017-1-오프라인강좌
 
소프트웨어, 정말 되는 건가?
소프트웨어, 정말 되는 건가?소프트웨어, 정말 되는 건가?
소프트웨어, 정말 되는 건가?
 
소프트웨어, 소프트웨어 개발자
소프트웨어, 소프트웨어 개발자소프트웨어, 소프트웨어 개발자
소프트웨어, 소프트웨어 개발자
 
국민대학교 컴퓨터프로그래밍
국민대학교 컴퓨터프로그래밍국민대학교 컴퓨터프로그래밍
국민대학교 컴퓨터프로그래밍
 
Open Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code reviewOpen Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code review
 
자기소개서, 이력서 쓰는 법
자기소개서, 이력서 쓰는 법자기소개서, 이력서 쓰는 법
자기소개서, 이력서 쓰는 법
 

More from Minsuk Lee

CES 처음 가는 분을 위한 가이드
CES 처음 가는 분을 위한 가이드CES 처음 가는 분을 위한 가이드
CES 처음 가는 분을 위한 가이드Minsuk Lee
 
NIA-PaaS-TA Pub 키노트
NIA-PaaS-TA Pub 키노트NIA-PaaS-TA Pub 키노트
NIA-PaaS-TA Pub 키노트Minsuk Lee
 
모두콘, 어떻게 배울 것인가 발제.
모두콘,  어떻게 배울 것인가 발제.모두콘,  어떻게 배울 것인가 발제.
모두콘, 어떻게 배울 것인가 발제.Minsuk Lee
 
GDG-DevFest, 만들면서 자랑하면서 성장하는 개발자
GDG-DevFest, 만들면서 자랑하면서 성장하는 개발자GDG-DevFest, 만들면서 자랑하면서 성장하는 개발자
GDG-DevFest, 만들면서 자랑하면서 성장하는 개발자Minsuk Lee
 
개발자, 회사.. 왜 오픈소스를 해야할까?
개발자, 회사.. 왜 오픈소스를 해야할까?개발자, 회사.. 왜 오픈소스를 해야할까?
개발자, 회사.. 왜 오픈소스를 해야할까?Minsuk Lee
 
진정한 소프트웨어 융합교육에 대하여
진정한 소프트웨어 융합교육에 대하여 진정한 소프트웨어 융합교육에 대하여
진정한 소프트웨어 융합교육에 대하여 Minsuk Lee
 
FOSS CON Korea 2018
FOSS CON Korea 2018FOSS CON Korea 2018
FOSS CON Korea 2018Minsuk Lee
 
소프트웨어 공부하는법
소프트웨어 공부하는법소프트웨어 공부하는법
소프트웨어 공부하는법Minsuk Lee
 
왜 우리는 개발자에 집중하지 않는가?
왜 우리는 개발자에 집중하지 않는가?왜 우리는 개발자에 집중하지 않는가?
왜 우리는 개발자에 집중하지 않는가?Minsuk Lee
 
Somul 2017-이민석
Somul 2017-이민석Somul 2017-이민석
Somul 2017-이민석Minsuk Lee
 
Next에서 공부하는 법
Next에서 공부하는 법Next에서 공부하는 법
Next에서 공부하는 법Minsuk Lee
 
Deview 2013 - 나는 왜 개발자인데 자신이 없을까?
Deview 2013 - 나는 왜 개발자인데자신이 없을까?Deview 2013 - 나는 왜 개발자인데자신이 없을까?
Deview 2013 - 나는 왜 개발자인데 자신이 없을까?Minsuk Lee
 
임베디드시스템개발 Part2
임베디드시스템개발 Part2임베디드시스템개발 Part2
임베디드시스템개발 Part2Minsuk Lee
 
OSS개발자포럼 Slide-2013-05-25
OSS개발자포럼 Slide-2013-05-25OSS개발자포럼 Slide-2013-05-25
OSS개발자포럼 Slide-2013-05-25Minsuk Lee
 
임베디드시스템개발 Part1
임베디드시스템개발 Part1임베디드시스템개발 Part1
임베디드시스템개발 Part1Minsuk Lee
 
임베디드시스템과시장
임베디드시스템과시장임베디드시스템과시장
임베디드시스템과시장Minsuk Lee
 

More from Minsuk Lee (16)

CES 처음 가는 분을 위한 가이드
CES 처음 가는 분을 위한 가이드CES 처음 가는 분을 위한 가이드
CES 처음 가는 분을 위한 가이드
 
NIA-PaaS-TA Pub 키노트
NIA-PaaS-TA Pub 키노트NIA-PaaS-TA Pub 키노트
NIA-PaaS-TA Pub 키노트
 
모두콘, 어떻게 배울 것인가 발제.
모두콘,  어떻게 배울 것인가 발제.모두콘,  어떻게 배울 것인가 발제.
모두콘, 어떻게 배울 것인가 발제.
 
GDG-DevFest, 만들면서 자랑하면서 성장하는 개발자
GDG-DevFest, 만들면서 자랑하면서 성장하는 개발자GDG-DevFest, 만들면서 자랑하면서 성장하는 개발자
GDG-DevFest, 만들면서 자랑하면서 성장하는 개발자
 
개발자, 회사.. 왜 오픈소스를 해야할까?
개발자, 회사.. 왜 오픈소스를 해야할까?개발자, 회사.. 왜 오픈소스를 해야할까?
개발자, 회사.. 왜 오픈소스를 해야할까?
 
진정한 소프트웨어 융합교육에 대하여
진정한 소프트웨어 융합교육에 대하여 진정한 소프트웨어 융합교육에 대하여
진정한 소프트웨어 융합교육에 대하여
 
FOSS CON Korea 2018
FOSS CON Korea 2018FOSS CON Korea 2018
FOSS CON Korea 2018
 
소프트웨어 공부하는법
소프트웨어 공부하는법소프트웨어 공부하는법
소프트웨어 공부하는법
 
왜 우리는 개발자에 집중하지 않는가?
왜 우리는 개발자에 집중하지 않는가?왜 우리는 개발자에 집중하지 않는가?
왜 우리는 개발자에 집중하지 않는가?
 
Somul 2017-이민석
Somul 2017-이민석Somul 2017-이민석
Somul 2017-이민석
 
Next에서 공부하는 법
Next에서 공부하는 법Next에서 공부하는 법
Next에서 공부하는 법
 
Deview 2013 - 나는 왜 개발자인데 자신이 없을까?
Deview 2013 - 나는 왜 개발자인데자신이 없을까?Deview 2013 - 나는 왜 개발자인데자신이 없을까?
Deview 2013 - 나는 왜 개발자인데 자신이 없을까?
 
임베디드시스템개발 Part2
임베디드시스템개발 Part2임베디드시스템개발 Part2
임베디드시스템개발 Part2
 
OSS개발자포럼 Slide-2013-05-25
OSS개발자포럼 Slide-2013-05-25OSS개발자포럼 Slide-2013-05-25
OSS개발자포럼 Slide-2013-05-25
 
임베디드시스템개발 Part1
임베디드시스템개발 Part1임베디드시스템개발 Part1
임베디드시스템개발 Part1
 
임베디드시스템과시장
임베디드시스템과시장임베디드시스템과시장
임베디드시스템과시장
 

Data and Sorting Algoritm

  • 1. 소프트웨어 & 프로그래밍 (2) 이민석 컴퓨터공학부, 국민대학교
  • 2.
  • 4.
  • 5.
  • 6. Naver ‘핫토픽 키워드’ 2015년 5월 9일 오전 8시, 11시, 14시
  • 7. 세상의 많은 문제의 본질은... • 데이터 사이의 관계를 이해하는 것 데이터의 순서  정렬 (Sorting) : 어떤 기준이든. 데이터의 소속  분류 (Categorizing) 및 인식 : 어떤 구분이든. 데이터의 연관성  관계 (Relation)의 설정 : 어떤 이유이든. 데이터의 변화  추세(Trend)의 확인 : 어떤 관점이든.
  • 8. 데이터의 소속 • 분류의 문제 Spam 메일 vs 중요 메일 • 인식의 문제 사과인가 배인가? 개인가 고양이인가? 이 자는 누구인가? 나이는 몇인가?
  • 9. 데이터의 연관성 • 두 데이터 사이의 관계 친구인가? 그렇고 그런 관계인가?
  • 10. 데이터의 변화 • 추세의 확인과 예측 지금까지는 어땠는데… 다음은 어떻게 될 것인가?
  • 11. 요약 (예, FinTech) 데이터 고객 은행 분류 관계 인식 변화 정렬 수집 신용도 • 고개에게 편리함을 제공 • 데이터를 수집 • 수집된 데이터를 열나게 처리 • 성향과 신용도를 파악
  • 12. 세상의 많은 문제의 본질은... • 데이터 사이의 관계를 이해하는 것 데이터의 순서  정렬 (Sorting) : 어떤 기준이든. 데이터의 소속  분류 (Categorizing) 및 인식 : 어떤 구분이든. 데이터의 연관성  관계 (Relation)의 설정 : 어떤 이유이든. 데이터의 변화  추세(Trend)의 확인 : 어떤 관점이든.
  • 13. 데이터의 정렬 방식 • Simple sorts  Insertion sort  Selection sort • Efficient sorts  Merge sort  Heap sort  Quick sort • Bubble sort and variants  Bubble sort  Shell sort  Comb sort • Distribution sort  Counting sort  Bucket sort  Radix sort • … 문제는 다 같다: 데이터를 순서대로 정렬하는 것 답은 다르다: 데이터의 모양에 따라서 http://en.wikipedia.org/wiki/Sorting_algorithm
  • 14. Selection Shell Insertion Merge Quick Heap Bubble Comb Cocktail https://www.youtube.com/watch?v=ZZuD6iUe3Pc
  • 15. 세상에 조건 없는 정답은 없다. • 9가지 정렬 프로그램의 비교 (4 종류의 데이터) Random (임의의 데이터) Few Unique (몇 종류로 구분되는 데이터) Reversed (완전히 순서가 거꾸로 된 데이터) Almost Sorted (이미 거의 정렬이 된 데이터)
  • 16. 이 다섯 개를 정렬해보자
  • 19. 정답은 누가 봐도 컴퓨터는 그 누가가 아니다. 단계적인 접근이 필요
  • 20. 1 4 5 Bubble Sort: (1) 옆의 것과 비교하여 연속적으로 자리 바꾸기 2 3 비교하여 왼쪽이 크면 자리 바꾸기 http://en.wikipedia.org/wiki/Bubble_sort
  • 21. 1 4 5 Bubble Sort: (2) 옆의 것과 비교하여 연속적으로 자리 바꾸기 2 3 비교하여 왼쪽이 크면 자리 바꾸기
  • 22. 1 4 5 Bubble Sort: (3) 옆의 것과 비교하여 연속적으로 자리 바꾸기 2 3 비교하여 왼쪽이 크면 자리 바꾸기
  • 23. 1 4 5 Bubble Sort: (4) 옆의 것과 비교하여 연속적으로 자리 바꾸기 2 3 비교하여 왼쪽이 크면 자리 바꾸기
  • 24. 1 4 5 Bubble Sort: (*) 옆의 것과 비교하여 연속적으로 자리 바꾸기 2 3 돌아가서 처음부터 다시 (두 번째 키 큰 놈 옮기기) 제일 키 큰 놈 옮기기 완료
  • 25. 1 4 5 Bubble Sort: (5) 옆의 것과 비교하여 연속적으로 자리 바꾸기 2 3 비교하여 왼쪽이 크면 자리 바꾸기
  • 26. 1 4 5 Bubble Sort: (6) 옆의 것과 비교하여 연속적으로 자리 바꾸기 2 3 비교하여 왼쪽이 크면 자리 바꾸기
  • 27. 1 4 5 Bubble Sort: (7) 옆의 것과 비교하여 연속적으로 자리 바꾸기 2 3 비교하여 왼쪽이 크면 자리 바꾸기
  • 28. 1 4 5 Bubble Sort: (*) 옆의 것과 비교하여 연속적으로 자리 바꾸기 2 3 돌아가서 처음부터 다시 (세 번째 키 큰 놈 옮기기)
  • 29. 1 4 5 Bubble Sort: (8) 옆의 것과 비교하여 연속적으로 자리 바꾸기 2 3 비교하여 왼쪽이 크면 자리 바꾸기
  • 30. 1 4 5 Bubble Sort: (9) 옆의 것과 비교하여 연속적으로 자리 바꾸기 2 3 비교하여 왼쪽이 크면 자리 바꾸기
  • 31. 1 4 5 Bubble Sort: (*) 옆의 것과 비교하여 연속적으로 자리 바꾸기 2 3 돌아가서 처음부터 다시 (세 번째 키 큰 놈 옮기기)
  • 32. 1 4 5 Bubble Sort: (10) 옆의 것과 비교하여 연속적으로 자리 바꾸기 2 3 비교하여 왼쪽이 크면 자리 바꾸기
  • 33. 1 4 5 Bubble Sort: (*) 옆의 것과 비교하여 연속적으로 자리 바꾸기 2 3
  • 34. Scratch로 구현한 Bubble Sort https://scratch.mit.edu/projects/60531554/#editor
  • 35. Bubble Sort: (*) 옆의 것과 비교하여 연속적으로 자리 바꾸기 N  정렬할 원소 개수 (값을 바꾼 적*이 있다면) 다음을 계속 반복 (= 최대 N-1번) 처음 원소부터 N-1 번째 원소까지 다음을 차례로 반복 만약 (현재 원소 값 > 오른쪽 원소 값) 이면 값을 맞바꿈* 한 칸 오른쪽으로 이동 N  N - 1
  • 36. 임의 순서의 데이터 (20개) 준비 과정 난수 얻어오기 이미 목록에 있는 숫자이면 다시 얻어오기 Order 목록에 추가하기
  • 37. Bubble Sort: 정렬 알고리즘 값 맞바꾸기 비교 후 A와 B 값 바꾸기 X  A A  B B  X * 이 알고리즘은 당연히 더 개선할 여지가 있습니다.
  • 38. Bar 그리고 연주하기 Bar를 높이 만큼 그리기 이전에 그린 Bar 지우기 높이에 맞춰 연주하기
  • 39. 1 4 5 Insertion Sort: (1) 차례로 내 자리에 끼어 들어가기 2 3 http://en.wikipedia.org/wiki/Insertion_sort 앞에 것들과 비교하여 내 자리로 들어가기 * 3을 1의 앞에 넣기
  • 40. 1 4 5 Insertion Sort: (2) 차례로 내 자리에 끼어 들어가기 2 3 앞에 것들과 비교하여 내 자리로 들어가기 * 2를 1 앞에 넣기
  • 41. 1 4 5 Insertion Sort: (3) 차례로 내 자리에 끼어 들어가기 2 3 앞에 것들과 비교하여 내 자리로 들어가기 * 1, 2, 3을 한 칸씩 옮기고 4을 3 앞에 넣기
  • 42. 1 4 5 Insertion Sort: (4) 차례로 내 자리에 끼어 들어가기 2 3 앞에 것들과 비교하여 내 자리로 들어가기 * 1, 2, 3, 4를 한 칸씩 옮기고 5를 4 앞에 넣기
  • 43. 1 4 5 Insertion Sort: (*) 차례로 내 자리에 끼어 들어가기 2 3
  • 44. Scratch로 구현한 Insertion Sort https://scratch.mit.edu/projects/60531222/#editor
  • 45. Insertion Sort: 차례로 내 자리에 끼어 들어가기 두 번째 원소부터 마지막 원소까지 다음을 반복 V  현재 위치의 원소 값 현재 위치 왼쪽 원소부터 첫 원소까지 차례로 다음을 반복 만약 (V < 해당 원소 값) 이면 끼워 넣을 위치로 새로 지정 해당 원소 값은 오른쪽으로 이동 아니면 반복 그만 왼쪽으로 한 칸 이동 끼워 넣을 위치의 원소 값  V V
  • 46. Insertion Sort: 정렬 알고리즘 자기보다 앞쪽의 키 큰놈들 한 칸씩 옮기기 자기 자리에 끼워 넣기 * 이 알고리즘은 당연히 더 개선할 여지가 있습니다.
  • 47.

Editor's Notes

  1. 순서는 : 어떤 식이든 Sorting 소속은 : Categorize 분류, 인식 : 사진을 보고 개or고양이, 사과or배 연관성은 : 관계의 정의 : 친구, 부모, 학교-학생 변화는 : 미래 예측 : 어떤 관점이든
  2. 사진으로 성별과 나이를 잘 맞출 수 있다면… -- 예, 백화점 엘리베이터에서
  3. 사람 사이의 관계를 잘 알 수 있다면..
  4. 문제의 이해.. 뭘 (변화를 주도하는) 의미 있는 데이터로 볼 것인가? 유용하지만 가장 어려운 것 신용도를 조사한다면 의미있는 것과 아닌 거.
  5. 데이터의 순서 정렬 (Sorting) : 어떤 기준이든. 데이터의 소속 분류 (Categorizing) 및 인식 : 어떤 구분이든. 데이터의 연관성 관계 (Relation)의 설정 : 어떤 이유이든. 데이터의 변화 추세(Trend)의 확인 : 어떤 관점이든.
  6. 순서는 : 어떤 식이든 Sorting 소속은 : Categorize 분류, 인식 : 사진을 보고 개or고양이, 사과or배 연관성은 : 관계의 정의 : 친구, 부모, 학교-학생 변화는 : 미래 예측 : 어떤 관점이든