면접 질문

면접 준비

CS 기초지식

자료구조 및 알고리즘

정렬

1
Data : 8 5 7 3 1

:one: 버블 정렬

정렬의 우선순위가 가장 낮은 data를 맨 뒤로 보낸다.

1
2
3
4
5
6
7
8
for(int i=0;i<5-1;++i)
	for(int j=0;j<5-1-i;++j){
		if(array[j] > array[j+1]){
      int temp = array[j];
      array[j] = array[j+1];
      array[j+1] = temp;
		}
  }
i=0 -> 85731 58731 57831 57381 57318
i=1 -> 57318 57318 53718 53178
i=2 -> 53178 35178 31578
i=3 -> 31578 13578
i=4 -> 13578

:two: 선택 정렬

앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여 삽입한다.

1
2
3
4
5
6
7
8
9
10
for(int i=1;i<5;++i){
	int iD = array[i];
	for(j=i-1;j>=0;--j){
  	if(array[j] > iD)
			array[j+1] = array[j];
    else
    	break;
  }
  array[j+1] = ID;
}
1
2
3
4
i=1 -> 85731 88731 58731
i=2 -> 58731 58831 57831
i=3 -> 57831 57881 57781 55781 35781
i=4 -> 35781 35788 35778 35578 33578 13578

:three: 삽입 정렬

해당 순서에 원소를 넣을 위치는 이미 정해져 있고, 어떤 원소를 넣을지 선택한다.

:four: 합병 정렬

:five: 퀵 정렬

우선순위 큐

트리

그래프

운영체제

네트워크

데이터베이스

프로젝트