아래의 그림은 삽입정렬을 보여주는 그림입니다. 삽입정렬은 맨 첫번째 원소를 기준으로 해서 왼쪽부터 하나씩 알맞는 위치에 삽입하는 정렬입니다. 맨 첫 번째 원소부터 하나씩 증가하며 왼쪽에 정렬을 합니다. 그리고 정렬되지 않은 그림상에서의 하얀 부분의 원소들을 정렬이 된 검은 부분에 자신의 위치에 맞는 곳에 삽입합니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 void InsertionSort( int array[], int num ) { for( int i=1; i=0; j--,n-- ) { if( array[j] > array[n] ) swap( array[j], array[n] ); } } } Colored by Color Scripter cs
아래는 버블 정렬을 보여주는 그림입니다. 버블 정렬은 그림과 같이 맨 처음 원소부터 인접한 원소를 비교하여 맨 끝 원소까지 비교를 하며 정렬을 하는 방법입니다. 그리고 그 모양이 물 속에서 물방울이 올라오는 모양같다고 하여 버블 정렬이라고 부릅니다. 아래와 같이 인접한 원소끼리 비교하여 큰 원소이면 바꾸는 식으로 뒤로 뒤로 보내게 되는 데요. 그런식으로 하다본면 맨 마지막 원소엔 가장 큰 원소가 자리잡게 됩니다. 그런식으로 다시 첫 원소부터 다시 비교를 하여 정렬을 하게 됩니다. 가장 큰 것을 마지막에 넣는 식이다 보니, 이미 정렬이 된 원소들은 제외를 하면서 정렬을 합니다. 1 2 3 4 5 6 7 8 9 10 11 void BubbleSort( int *array, int num ) { for( in..
아래의 이미지는 7개의 정수를 선택 정렬을 이용하여 정렬을 하고 있는 모습니다. 가장 첫 번째자리 8이 있는 자리에 7개의 배열을 검사하여 제일 작은 녀석을 8과 바꿉니다. 그렇게 되면 우선 1번쨰 자리에는 가장 작은 녀석이니 배제하고 2번째에 들어올 녀석을 다시 6개의 배열을 검사하여 제일 작은 녀석과 2번째 자리에 있는 4와 바꾸는 식으로 정렬을 하게 됩니다. 시간 복잡도는 O(n²) 입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 void SelectionSort( int *array, int num ) { int idx = 0; for( int i=0; i