Share
Sign In
![📄](https://static.cafenono.com/emoji/14/img-apple-160/1f4c4.png)
Selection Sort
Best Case : \Omega(n^2)
Average Case : \Theta(n^2)
Worst Case : O(n^2)
우리말로 선택 정렬이라고 하는 Selection Sort 알고리즘은 max값을 갖고 하나하나 비교해나가는 알고리즘이다.
[출처] : ESSLAB "Algorithm" Lecture Note - Elementary Sorting
1.
첫번째 원소부터 N번째 원소를 max값과 비교한다.
2.
이때 max값 보다 큰 값이 나타나면, 나타난 값으로 max값을 업데이트 한다.
3.
N번째까지 비교한 후, 검사한 맨 뒤의 값과 max값을 Swap한다.
4.
N의 크기를 1킨 줄인다.
5.
1~4의 과정을 N번 반복한다.
따라서 제일 큰 값은 맨뒤로가게 되고, 뒤에서부터 순차적으로 정렬되게 된다.
때로는 반대로 각 원소 중에서 작은것을 찾고 맨앞의 원소와 Swap하기도 한다.
Pseudo Code
아래는 위의 코드를 바탕으로 C언어로 구현한 것이다.
C code
Time Complexity
selectionSort의 시간복잡도는 각각 아래와 같다.
Best Case : \Omega(n^2)
Average Case : \Theta(n^2)
Worst Case : O(n^2)
이때 Worst Case에서의 시간복잡도를 증명해보자.
Proof.
T(n) : The Sum of product of Cost and times of each line.
시간복잡도는 각 명령어가 실행될 때의 cost와 시간을 곱한것과 같다.
따라서 Worst Case에서 시간복잡도를 아래와 같이 나타낼 수 있다.
따라서 Worst Case에서 시간복잡도를 아래와 같이 나타낼 수 있다.
At Worst Case :
만개의 숫자를 input.txt 입력받아 정렬하는 C code
이전으로 돌아가기
Algorithm
메인으로 돌아가기
Best Case : \Omega(n^2)
Average Case : \Theta(n^2)
Worst Case : O(n^2)
우리말로 선택 정렬이라고 하는 Selection Sort 알고리즘은 max값을 갖고 하나하나 비교해나가는 알고리즘이다.
[출처] : ESSLAB "Algorithm" Lecture Note - Elementary Sorting
1.
첫번째 원소부터 N번째 원소를 max값과 비교한다.
2.
이때 max값 보다 큰 값이 나타나면, 나타난 값으로 max값을 업데이트 한다.
3.
N번째까지 비교한 후, 검사한 맨 뒤의 값과 max값을 Swap한다.
4.
N의 크기를 1킨 줄인다.
5.
1~4의 과정을 N번 반복한다.
따라서 제일 큰 값은 맨뒤로가게 되고, 뒤에서부터 순차적으로 정렬되게 된다.
때로는 반대로 각 원소 중에서 작은것을 찾고 맨앞의 원소와 Swap하기도 한다.
Pseudo Code
아래는 위의 코드를 바탕으로 C언어로 구현한 것이다.
C code
Time Complexity
selectionSort의 시간복잡도는 각각 아래와 같다.
Best Case : \Omega(n^2)
Average Case : \Theta(n^2)
Worst Case : O(n^2)
이때 Worst Case에서의 시간복잡도를 증명해보자.
Proof.
T(n) : The Sum of product of Cost and times of each line.
시간복잡도는 각 명령어가 실행될 때의 cost와 시간을 곱한것과 같다.
따라서 Worst Case에서 시간복잡도를 아래와 같이 나타낼 수 있다.
따라서 Worst Case에서 시간복잡도를 아래와 같이 나타낼 수 있다.
At Worst Case :
만개의 숫자를 input.txt 입력받아 정렬하는 C code
이전으로 돌아가기
Algorithm
메인으로 돌아가기
Best Case : \Omega(n^2)
Average Case : \Theta(n^2)
Worst Case : O(n^2)
우리말로 선택 정렬이라고 하는 Selection Sort 알고리즘은 max값을 갖고 하나하나 비교해나가는 알고리즘이다.
[출처] : ESSLAB "Algorithm" Lecture Note - Elementary Sorting
1.
첫번째 원소부터 N번째 원소를 max값과 비교한다.
2.
이때 max값 보다 큰 값이 나타나면, 나타난 값으로 max값을 업데이트 한다.
3.
N번째까지 비교한 후, 검사한 맨 뒤의 값과 max값을 Swap한다.
4.
N의 크기를 1킨 줄인다.
5.
1~4의 과정을 N번 반복한다.
따라서 제일 큰 값은 맨뒤로가게 되고, 뒤에서부터 순차적으로 정렬되게 된다.
때로는 반대로 각 원소 중에서 작은것을 찾고 맨앞의 원소와 Swap하기도 한다.
Pseudo Code
아래는 위의 코드를 바탕으로 C언어로 구현한 것이다.
C code
Time Complexity
selectionSort의 시간복잡도는 각각 아래와 같다.
Best Case : \Omega(n^2)
Average Case : \Theta(n^2)
Worst Case : O(n^2)
이때 Worst Case에서의 시간복잡도를 증명해보자.
Proof.
T(n) : The Sum of product of Cost and times of each line.
시간복잡도는 각 명령어가 실행될 때의 cost와 시간을 곱한것과 같다.
따라서 Worst Case에서 시간복잡도를 아래와 같이 나타낼 수 있다.
따라서 Worst Case에서 시간복잡도를 아래와 같이 나타낼 수 있다.
At Worst Case :
만개의 숫자를 input.txt 입력받아 정렬하는 C code
이전으로 돌아가기
Algorithm
메인으로 돌아가기
Best Case : \Omega(n^2)
Average Case : \Theta(n^2)
Worst Case : O(n^2)
우리말로 선택 정렬이라고 하는 Selection Sort 알고리즘은 max값을 갖고 하나하나 비교해나가는 알고리즘이다.
[출처] : ESSLAB "Algorithm" Lecture Note - Elementary Sorting
1.
첫번째 원소부터 N번째 원소를 max값과 비교한다.
2.
이때 max값 보다 큰 값이 나타나면, 나타난 값으로 max값을 업데이트 한다.
3.
N번째까지 비교한 후, 검사한 맨 뒤의 값과 max값을 Swap한다.
4.
N의 크기를 1킨 줄인다.
5.
1~4의 과정을 N번 반복한다.
따라서 제일 큰 값은 맨뒤로가게 되고, 뒤에서부터 순차적으로 정렬되게 된다.
때로는 반대로 각 원소 중에서 작은것을 찾고 맨앞의 원소와 Swap하기도 한다.
Pseudo Code
아래는 위의 코드를 바탕으로 C언어로 구현한 것이다.
C code
Time Complexity
selectionSort의 시간복잡도는 각각 아래와 같다.
Best Case : \Omega(n^2)
Average Case : \Theta(n^2)
Worst Case : O(n^2)
이때 Worst Case에서의 시간복잡도를 증명해보자.
Proof.
T(n) : The Sum of product of Cost and times of each line.
시간복잡도는 각 명령어가 실행될 때의 cost와 시간을 곱한것과 같다.
따라서 Worst Case에서 시간복잡도를 아래와 같이 나타낼 수 있다.
따라서 Worst Case에서 시간복잡도를 아래와 같이 나타낼 수 있다.
At Worst Case :
만개의 숫자를 input.txt 입력받아 정렬하는 C code
이전으로 돌아가기
Algorithm
메인으로 돌아가기
Best Case : \Omega(n^2)
Average Case : \Theta(n^2)
Worst Case : O(n^2)
우리말로 선택 정렬이라고 하는 Selection Sort 알고리즘은 max값을 갖고 하나하나 비교해나가는 알고리즘이다.
[출처] : ESSLAB "Algorithm" Lecture Note - Elementary Sorting
1.
첫번째 원소부터 N번째 원소를 max값과 비교한다.
2.
이때 max값 보다 큰 값이 나타나면, 나타난 값으로 max값을 업데이트 한다.
3.
N번째까지 비교한 후, 검사한 맨 뒤의 값과 max값을 Swap한다.
4.
N의 크기를 1킨 줄인다.
5.
1~4의 과정을 N번 반복한다.
따라서 제일 큰 값은 맨뒤로가게 되고, 뒤에서부터 순차적으로 정렬되게 된다.
때로는 반대로 각 원소 중에서 작은것을 찾고 맨앞의 원소와 Swap하기도 한다.
Pseudo Code
아래는 위의 코드를 바탕으로 C언어로 구현한 것이다.
C code
Time Complexity
selectionSort의 시간복잡도는 각각 아래와 같다.
Best Case : \Omega(n^2)
Average Case : \Theta(n^2)
Worst Case : O(n^2)
이때 Worst Case에서의 시간복잡도를 증명해보자.
Proof.
T(n) : The Sum of product of Cost and times of each line.
시간복잡도는 각 명령어가 실행될 때의 cost와 시간을 곱한것과 같다.
따라서 Worst Case에서 시간복잡도를 아래와 같이 나타낼 수 있다.
따라서 Worst Case에서 시간복잡도를 아래와 같이 나타낼 수 있다.
At Worst Case :
만개의 숫자를 input.txt 입력받아 정렬하는 C code
이전으로 돌아가기
Algorithm
메인으로 돌아가기
Best Case : \Omega(n^2)
Average Case : \Theta(n^2)
Worst Case : O(n^2)
우리말로 선택 정렬이라고 하는 Selection Sort 알고리즘은 max값을 갖고 하나하나 비교해나가는 알고리즘이다.
[출처] : ESSLAB "Algorithm" Lecture Note - Elementary Sorting
1.
첫번째 원소부터 N번째 원소를 max값과 비교한다.
2.
이때 max값 보다 큰 값이 나타나면, 나타난 값으로 max값을 업데이트 한다.
3.
N번째까지 비교한 후, 검사한 맨 뒤의 값과 max값을 Swap한다.
4.
N의 크기를 1킨 줄인다.
5.
1~4의 과정을 N번 반복한다.
따라서 제일 큰 값은 맨뒤로가게 되고, 뒤에서부터 순차적으로 정렬되게 된다.
때로는 반대로 각 원소 중에서 작은것을 찾고 맨앞의 원소와 Swap하기도 한다.
Pseudo Code
아래는 위의 코드를 바탕으로 C언어로 구현한 것이다.
C code
Time Complexity
selectionSort의 시간복잡도는 각각 아래와 같다.
Best Case : \Omega(n^2)
Average Case : \Theta(n^2)
Worst Case : O(n^2)
이때 Worst Case에서의 시간복잡도를 증명해보자.
Proof.
T(n) : The Sum of product of Cost and times of each line.
시간복잡도는 각 명령어가 실행될 때의 cost와 시간을 곱한것과 같다.
따라서 Worst Case에서 시간복잡도를 아래와 같이 나타낼 수 있다.
따라서 Worst Case에서 시간복잡도를 아래와 같이 나타낼 수 있다.
At Worst Case :
만개의 숫자를 input.txt 입력받아 정렬하는 C code
이전으로 돌아가기
Algorithm
메인으로 돌아가기
Best Case : \Omega(n^2)
Average Case : \Theta(n^2)
Worst Case : O(n^2)
우리말로 선택 정렬이라고 하는 Selection Sort 알고리즘은 max값을 갖고 하나하나 비교해나가는 알고리즘이다.
[출처] : ESSLAB "Algorithm" Lecture Note - Elementary Sorting
1.
첫번째 원소부터 N번째 원소를 max값과 비교한다.
2.
이때 max값 보다 큰 값이 나타나면, 나타난 값으로 max값을 업데이트 한다.
3.
N번째까지 비교한 후, 검사한 맨 뒤의 값과 max값을 Swap한다.
4.
N의 크기를 1킨 줄인다.