본문 바로가기

반응형

알고리즘

탐색 - 해시 탐색법(Hash Search) 해시 탐색법은 데이터와 데이터를 저장할 인덱스를 연관시켜 짧은 시간에 찾을 수 있도록 한 알고리즘이다. 1. 넣을 값의 인덱스 찾기 값을 전체 사이즈로 나눈 값의 나머지로 인덱스를 정한다 (v % size = idx) 2. 값을 넣을 인덱스에 값이 있을때 아까 넣은 1과 21은 v%5 값이 같기 때문에 충돌이 일어난다!! 이럴때는 찾은 v%5값을 하나씩 증가하면서 빈 공간을 찾는다. idx 값이 2일 때 비어있으므로 여기에 넣는다!! 0. 구현 package com.bp.restart.search; public class HashSearch { private int [] BUCKTES = null; private int SIZE = 0; public HashSearch(int size){ this.BUC.. 더보기
탐색 - 순차탐색(Linear Search) 선형탐색법! 탐색법 중에 하나다 앞에서부터 하나하나 확인하면서 찾는 탐색법 가장 단순하고 가장 쉽다. public class Search { /** * 선형 탐색 * @param array : 찾을 배열 * @param find : 찾을 * @return 찾은 idx */ int linear(int [] array, int find){ for(int i = 0 ; i < array.length ; i++){ if(array[i] == find) { return i; } } return -1; } } 더보기
큐(Queue) - 배열 요즘 위 이미지와 같이 거리두면서 줄 잘 서고 계신가요? ㅎㅎ 줄 잘서는 자료구조 큐(Queue)를 해보겠습니다! ㅋㅋ 큐(Queue) 는 선입선출(FIFO : First In First Out)구조로 선형자료구조에 해당합니다. 스택과 같이 가장 기본이 되는 자료구조입니다. 스택은 넣고 꺼내는 입구가 하나였다면, 큐는 넣는 곳 빼는곳이 각각 따로 있습니다. 큐에 넣는것을 enqueue 큐에서 꺼내는 것을 dequeue 라고 합니다. 큐를 한번 그림으로 설명 해볼께요 우선, front와 rear 변수를 선언합니다. 이는 현재 queue의 상태를 확인 할때 사용합니다. front는 맨 앞, rear는 맨뒤라고 생각하시면 됩니다. 맨 처음 큐가 비었기 때문에 front와 rear 가 idx -1 을 가르킵니다.. 더보기

반응형