(편의상 알고리즘에는 간단히 배열을 적용한다. 그리고 인덱스는 0부터가 아닌 1부터 이다.)
선택정렬
● 선택된 값과 나머지 오른쪽에 있는 값들과 전부 비교해서
제일 작은 값을 기억 하고 있다가 선택된 값과 제일 작은 값을 바꾼다.
n개의 값을 정렬 할때 걸리는 시간은 O(n2)
A = 선택한 값, B = 값이 저장된 배열, Min = 작은 값
i = 인덱스번호, MAX = 정렬할 값의 총 갯수
1. A에 1을 저장한다.
2. i에 A+1을 저장한다.
3. B[A]와 B[i]i의 값을 비교 한다.
4. B[i]의 값이 작으면 Min에 i를 저장한다.(위치를 기억)
5. i와 MAX가 같으면 B[Min]와 B[A]의 값을 바꾼다. 아니면 i를 1증가 시키고 3번으로 돌아간다.
6. A가 작으면 A를 1증가 시키고 2번으로 돌아간다.
7. A와 MAX가 같으면 알고리즘을 종료한다.
버블정렬
● 인접한 두개의 값을 비교 하며 정렬 해나가는 방법
n개의 값을 정렬 할때 걸리는 시간은 O(n2)
A = 선택한 인덱스, B = 값이 저장된 배열, MAX = 정렬할 값의 총 갯수
1. A에 1를 저장한다.
2. B[A]와 B[A+1]의 값을 비교한다.
3. B[A+1]이 작으면 B[A]와 B[A+1]의 값을 바꾼다.
4. A와 MAX-1 값을 비교한다.
5. A가 작으면 A를 1증가 시킨다.
6. 같으면 MAX값이 1과 같은지 비교한다.
7. 작으면 MAX값을 1감소 시키고, 1번으로 돌아간다.
8. 같으면 이 알고리즘을 종료한다.
삽입정렬
● 선택된 값의 왼쪽 값을 비교해서 작으면 자리를 바꾸고 크거나 같다면 종료한다.
n개의 값을 정렬 할때 걸리는 시간은 O(n2)
A = 시작한 인덱스, B = 값이 저장된 배열, MAX = 정렬할 값의 총 갯수
i = 선택된 인덱스, T = 임시 변수
1. A를 2로 초기화 한다.
2. i에 A를 저장하고 T에 B[A]를 저장한다.
3. T와 B[i-1]의 값을 비교한다.
4. T가 작으면 B[i]에 B[i-1]의 값을 저장하고, i값을 1감소 시키고, 3번으로 돌아간다.
5. T가 같거나 크면 B[i]에 T값을 저장한다.
6. A와 MAX의 값을 비교한다.
7. A가 작거나 같으면 A를 1증가 시키고, 2번으로 돌아간다.
8. A가 크면 이 알고리즘은 종료 한다.
선택정렬
● 선택된 값과 나머지 오른쪽에 있는 값들과 전부 비교해서
제일 작은 값을 기억 하고 있다가 선택된 값과 제일 작은 값을 바꾼다.
n개의 값을 정렬 할때 걸리는 시간은 O(n2)
A = 선택한 값, B = 값이 저장된 배열, Min = 작은 값
i = 인덱스번호, MAX = 정렬할 값의 총 갯수
1. A에 1을 저장한다.
2. i에 A+1을 저장한다.
3. B[A]와 B[i]i의 값을 비교 한다.
4. B[i]의 값이 작으면 Min에 i를 저장한다.(위치를 기억)
5. i와 MAX가 같으면 B[Min]와 B[A]의 값을 바꾼다. 아니면 i를 1증가 시키고 3번으로 돌아간다.
6. A가 작으면 A를 1증가 시키고 2번으로 돌아간다.
7. A와 MAX가 같으면 알고리즘을 종료한다.
버블정렬
● 인접한 두개의 값을 비교 하며 정렬 해나가는 방법
n개의 값을 정렬 할때 걸리는 시간은 O(n2)
A = 선택한 인덱스, B = 값이 저장된 배열, MAX = 정렬할 값의 총 갯수
1. A에 1를 저장한다.
2. B[A]와 B[A+1]의 값을 비교한다.
3. B[A+1]이 작으면 B[A]와 B[A+1]의 값을 바꾼다.
4. A와 MAX-1 값을 비교한다.
5. A가 작으면 A를 1증가 시킨다.
6. 같으면 MAX값이 1과 같은지 비교한다.
7. 작으면 MAX값을 1감소 시키고, 1번으로 돌아간다.
8. 같으면 이 알고리즘을 종료한다.
삽입정렬
● 선택된 값의 왼쪽 값을 비교해서 작으면 자리를 바꾸고 크거나 같다면 종료한다.
n개의 값을 정렬 할때 걸리는 시간은 O(n2)
A = 시작한 인덱스, B = 값이 저장된 배열, MAX = 정렬할 값의 총 갯수
i = 선택된 인덱스, T = 임시 변수
1. A를 2로 초기화 한다.
2. i에 A를 저장하고 T에 B[A]를 저장한다.
3. T와 B[i-1]의 값을 비교한다.
4. T가 작으면 B[i]에 B[i-1]의 값을 저장하고, i값을 1감소 시키고, 3번으로 돌아간다.
5. T가 같거나 크면 B[i]에 T값을 저장한다.
6. A와 MAX의 값을 비교한다.
7. A가 작거나 같으면 A를 1증가 시키고, 2번으로 돌아간다.
8. A가 크면 이 알고리즘은 종료 한다.