일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- jQuery
- Ajax
- 알고리즘
- websocket
- tiles.xml
- 배포
- RDS
- AWS
- SQL
- docker
- phaser
- 블록체인
- model1
- 암호화
- 비트코인
- autowired
- JavaScript
- node.js
- CSS
- Spring
- Cookie
- 도커
- EC2
- express
- JSP
- 웹게임
- HTML
- 웹소켓
- Servlet
- PL/SQL
- Today
- Total
목록IT_Fundamental/알고리즘 (4)
記錄
의미> 특정한 값을 기준으로 배열을 해당 값보다 작은 쪽, 큰 쪽으로 가른다. 그렇게 가르면 하나의 배열이 두 개의 조각이 되는데 각 조각에서 또 특정 값을 기준으로 잡아 해당 값보다 작은 쪽, 큰 쪽으로 배열을 나눈다. 이런 행위를 재귀적으로 반복하여 결국 처음 타겟이었던 배열 본체를 정렬하는 정렬 방법이다. 지금까지 했던 어떤 배열보다도 시간복잡도가 낮다. 이유는 반복을 두 번 중복으로 사용하지 않고 한 번만 사용하기 때문이다. 코드예시> #include int number = 10; int array[10] = {5, 7, 8, 9, 4, 6, 1, 3, 2, 10}; int show(int* array){ for(int i = 0; i < 10; i ++){ printf("%d ", arr..
의미> 선택정렬은 한 번 반복 할 때에 타겟이 되는 대상들을 모두 비교하여 min인 경우 무조건 min 값을 챙겨놨다가 인덱스를 하나 하나 움직이면서 챙겨둔 min 값을 넣는 것. 버블정렬은 인접한 원소와 비교하여 조건절이 만족하면 무조건 이를 위치를 바꾸어서 배열의 끝 혹은 맨 앞에 적재 하는 것. 삽입정렬은 버블정렬과 유사한 측면이 있지만 "필요할 때에만" 위치를 바꾼다는 점에서 조금 다르다. 즉, 버블정렬은 인접한 두 원소를 인덱스를 증가시키면서 계속 비교하고 계속 가져가던 원소가 조건에 부합하면 그거때문에 위치를 바꾸고 새로 만난 원소가 더 적절하면 그것을 다시 가지고 가면서 위치를 바꾼다. 반면, 삽입정렬은 기존의 정렬이 "이미 되어있다"고 가정을 한 상태에서 인덱스를 증가시키기 때문에 조건절..
의미> 인접한 두 원소를 비교하여 우측의 것이 크면 위치를 바꾸고 다시 바꾼 것을 가지고 그 다음 원소와 비교. 계속 이런 식으로 비교해가며 가장 큰 값을 가장 우측에 적재. 반복이 한 번 돌 때마다 반복 대상 원소들 중 가장 값이 큰 것은 맨 우측으로 적재되며 쌓인다. 쉽게 말해서 둘이 비교해서 원하는 것이 나오면 바로 취하고 그렇게 취한 것을 가지고 또 비교해서 필요없으면 바로 갈아치워서 결국 가장 값이 큰 것을 끝까지 위치를 바꿔가며 오른쪽까지 가져가는 것. 코드예시> #include int main(void){ int array[10] = {9, 5, 6, 8, 3, 7, 10, 2, 4, 1}; int i, j, temp; for(i = 0; i < 10; i++){ //for(j = 0..
의미> 1부터 10까지의 배열이 무작위로 있을 때 10개를 대상으로 가장 작은 것을 골라 맨 앞과 위치 스위칭. 그리고 맨 앞에 간 가장 작은 것은 제쳐두고 나머지 9개를 대상으로 전체 검색을 하여 그 중 가장 작은 것을 맨 앞으로 스위칭. 이런 식으로 "비교-> 특정-> 위치 스위칭 -> 제껴두고 나머지들을 대상으로 다시 비교-> 특정-> 스위칭" 하는 것을 선택정렬이라고 함. '선택'인 이유는 대상을 특정해서 이를 선택하여 위치를 바꾸는데에서 '선택'이라는 명칭이 발생. 코드예시> #include int main(void){ int array[10] = {9, 5, 6, 8, 3, 7, 10, 2, 4, 1}; int i, j, index, min, temp; for(i = 0; i < 10; i++..