[Java] 32. 선택 정렬

@_@·2021년 6월 9일

Java 1부

목록 보기
32/41

ㅇ 선택정렬 Selection Sort

  • 오름차순 정렬 : 가장 큰 원소를 맨 오른쪽으로 배치
    • 전체 중에 가장 큰 것을 찾아서 -> 우측 끝으로 배치
    • 그 다음 것 중 가장 큰 거를 찾아서 -> 우측 끝으로 배치
  • 내림차순 정렬 : 가장 작은 원소를 맨 왼쪽으로 배치
    • 1회전 : 첫번째 기준으로
    • 2회전 : 1은 버리고/ 두번째 자리가 기준 / 4개 중 가장 큰 수 여기에 와야 해
    • 3회전 : 3번이 기준

착각하면 안 되는 게
3회전은 3번째가 기준이야
전체 중에서 큰 수만 딱 찾아서
마지막에 한 번만 바꾸는 거야
큰 수가 발생할 때마다 바꿔주는 게 아냐

큰 수가 발생했을 때 인덱스 번호를 기억하는 거야

기준점이 나와서 가장 큰 수를 찾아다녀~ 바꾸는 게 아냐 .
가장 큰 수의 인덱스를 선택해서 딱 한번만 치환해주는거야!!

힌트
칠판

98 7 79 13 24
버블 모양 - 치환이 계속 일어나

선택정렬은 기준점과 비교
1
0번째 1번째  인덱스를 바꿀 필요갸 없어
0번째 2번째 인덱스 비교

01
02
03
04 이렇게 비교하는 게 원스탭

투스텝 2하고 비교
12 (70이 더 크네?! 근데 여기서 바꾸는 게 아니라 변수를 하나 만들어서 여기에 2를 저장해 두는 것)
이제는 이 인덱스랑 비교해야 해 - 지워

인덱스는 0 1 2 3 4

다시
인덱스라는 변수가 있어
첫 기준은 0

인덱스에 0 넣어두고

01 02 03 04 이렇게  0과 0치환
원스텝 끝

투스텝
인덱스 기준점 1
12 -> 두번째 인덱스가 더 커서 기준 인덱스가 더 커져
23
24
끝나고 1,2 값이 바뀌면 돼

스리스텝
다시 인덱스에 기준점 2를 넣고

// 1회전을 코드로 한다면 어떻게 하는지 풀어서 해보자
// 0, 1 비교 -> 7이 더 크니까 -> 기준점이 1로 바껴 1하고 2를 비교 -> 기준점 또 바껴
//-> 2하고 3을 비교 -> 여기는 그대로 -> 2, 4 해보면 2가 살아남아 -> 마지막에 0과 2를 값을 바꾸면 돼


<2교시>

0과 비교할 인덱스가 1, 2, 3, 4

이 부분 놓침...

정렬마다 특징이 있어

가장 쉽고 속도는 느린 거 - 버블정렬
속도는 빠른 게 선택정렬

더 빠른 건 퀵 정렬

15 sorting algorithms in 6 minute

인설트 정렬 - 안에 넣어주는
시험지 가나다 순 램덤으로

하나 꺼내 놓아
그 다음 꺼 꺼내서
인설트

선택정렬보다 쪼끔 더 빨라

퀵정렬 엄청 빠르네

머지 솔트. 여러 정렬 방식을 합한 것 -


이걸 왜 하냐
머리를 회전 하는 연습을 한 거야
이거 못 한다고 해서 취업 못하는 거 아냐

실무에서는 엔터 탕 치면 정렬 딱 돼


실무 개발자와 학생 대결 - 학생이 이겨


주상욱 구구단ㅋㅋㅋㅋ 구구클래스 ㅋㅋㅋ

profile
STEP BY STEP

0개의 댓글