알고리즘(4)
-
선택 정렬이란 말이죠
선택 정렬(Selection Sorting)삽입 정렬의 많은 데이터 이동량을 보완해 줄 정렬 알고리즘이다.한 번에 하나의 자료를 선택해 해당 위치에 배정하는 정렬 방식을 사용한다.리스트를 사용하면 포인터에 의해 데이터 이동을 없앨 수 있다. 선택 정렬 또한 카드게임에 비유해 설명해 보자 게임에 필요한 카드가 모두 손에 있는 상황에서, 카드를 크기 순으로 정렬하려 한다.그 카드를 전부 살펴보고 가장 큰 값을 가장 오른쪽에 배치한다.이후 그 다음 큰 값을 그 다음 오른쪽에 배치한다.이 과정을 모든 카드가 정렬될 때까지 수행한다. (반대의 경우는 작은 값부터 왼 쪽에 정렬한다) 즉 선택 정렬의 수행 과정은 데이터 A[i], ..., A[n] 중 가장 작은 키 값을 갖는 데이터를 선택해 A[i]과 교환한다.이런..
2024.10.16 -
삽입 정렬..이란 말이죠...
삽입 정렬(Insertion Sorting)정리되지 않은 리스트(list)의 데이터 하나를 정렬 순서에 맞게 삽입하는 방법이며맨 처음 한 개의 데이터가 정렬되어 있는 것으로 간주하여 수행된다. 손에 이미 정렬된 카드를 들고, 새 카드를 적절한 위치에 삽입하는 카드 놀이와 같다. 특징이 알고리즘은 i번째 데이터 A[i]를 이미 정렬된 배열 A[1], A[2], ... , A[i-1]의 알맞은 위치를 찾아 '삽입'하는 방식으로 정렬을 수행한다. (하나씩 삽입하며 정렬)즉, 여기서 앞의 i-1번째 데이터는 이미 정렬된 상태이다. 이때 올바른 위치를 찾기 위해 수행되는 연산은 A[1], A[2], ... , A[i-1]들을 A[i]와 비교하는 것이다.비교는 A[1]부터 시작하는 경우와 A[i-1]부터 시작하는 ..
2024.10.11 -
정렬..이란 말이죠...
정렬정렬이란 주어진 데이터를 원하는 순서대로 재배열하는 연산이다.왜 정렬을 하느냐. 왜 가만있는 데이터를 재배열하느냐. 예를 들어, 1000개의 데이터가 있을 때 정렬되지 않은 데이터 집단은 특정 데이터를 찾을 때 일일히 샅샅히 순차적으로 뒤져야 할 것이다. 꽤 중노동의 일이다. 하지만 데이터가 예쁘게 정렬된 집단인 경우 여러 탐색 방법을 통해 빨리 해당 데이터를 찾을 수 있을 것이다.데이터를 원하는대로 이용하기 쉽게하기 위해, 정렬이 필요한 것이다.정렬 시 요구되는 탐색 방법들을 알맞게, 똑똑하게 사용하는 것이 개발자의 역량이라 생각한다. 데이터 정렬 방법: 2가지내부 정렬(internal sorting)정렬한 데이터 집단 크기가 적당해 주기억 장치에서 정렬이 가능하다.삽입 정렬, 선택 정렬, 버블..
2024.10.11 -
알고리즘이란..말이죠...
내가 생각한 알고리즘을 배우는 이유는 다음과 같다.내가 특정 기능을 구현할 때 어떤 알고리즘을 선택할 것인가에 대한 안목을 높이기 위해서이다.(지금의 나로썬..높이기 보다 기본적인 안목을 기르기 위해에 가까운 듯)
2024.10.11