삽입 정렬(Insertion Sort) (C++)
삽입 정렬은 적절한 위치에 삽입는 정렬이다. 앞에서부터 두 숫자를 비교하면서 정렬하고 정렬된 숫자에서 알맞는 자리를 찾아 숫자를 삽입하는 정렬이다. 자리를 찾아가는 방법은 바로 앞 숫자와 비교하여 자기보다 작은 숫자가 나올때까지 자리를 바꿔가는 것이다. 조심해야할 것은 j가 0보다 작아지지않게 j-1 과 j가 아니라 j 와 j+1을 비교하는 것이고, while 문 안에서 j>=0조건을 달아주고 j--를 하는 것은 생각해내기 쉽지 않았을 것 같다. #include using namespace std; int main(){ int i, j,tmp; int array[10]={1,10,5,8,7,6,4,3,2,9}; for(int i=0;i=0 && array[j]>array[j+1]){ tmp=array[j..
선택 정렬(Selection Sort) (C++)
선택정렬은 가장 작은 숫자를 가장 앞으로 보내는, 가장 앞에 있는 숫자와 자리를 바꾸어 오름차순으로 만드는 정렬이다. 처음에 했던 실수는 변수 min에 가장 작은 숫자가 들어가고 반복할때마다 그 다음으로 작은 숫자가 들어가기때문에 min을 큰 수로 매번 대입을 해줘야하는데 처음에만 대입을 해서 제대로 작동하지 않았다. #include using namespace std; int main(){ int i, j, min, index, tmp; int array[10]={1,10,5,8,7,6,4,3,2,9}; for(int i=0;i
버블 정렬(Bubble Sort) (C++)
버블 정렬은 바로 옆의 수와 비교하여 오름차순으로 정렬하는 알고리즘이다. 진행할수록 가장 큰 숫자가 맨 뒤에 자리하게 되고, 그렇기 때문에 진행되면서 맨 뒤 숫자를 빼고 비교를 하게되어 비교하는 횟수가 하나씩 줄어들게 된다. 시간복잡도는 O(N^2)로 가장 안좋다고 한다. #include using namespace std; int main(){ int i,j,tmp; int array[10]={1,10,5,8,7,6,4,3,2,9}; for(int i=0;i