본문 바로가기
728x90
728x90

Algorithm19

insertion sort 삽입정렬이란?- 정렬 대상을 두 부분으로 나눠서 정렬 안 된 부분에 있는 데이터를 정렬 된 부분의 특정 위치에 삽입해 가면서 정렬하는 알고리즘 Insertion Sort(삽입 정렬)이란 비효율 정렬(O(n^2))이지만, 한 가지 특징으로 인해 알아둘 필요가 있다. 흔히 비효율 정렬에는 대표적으로 3개가 있는데 바로 'Bubble Sort(버블 정렬)', 'Selection Sort(선택 정렬)', 'Insertion Sort(삽입 정렬)'이다. 이 중에서 선택 정렬은 버블 정렬보다 완벽히 상위 호환이므로, 버블 정렬을 정렬 알고리즘 분류에서 빼야 한다는 말도 있다. 선택 정렬의 알고리즘은 무척 간단하다. 각 단계별로 최소값 또는 최대값을 찾아 정렬하고 있는 위치에 저장한다.이전에 비교 방식에서 최소값 또.. 2017. 7. 3.
SingleLinkedList public class SingleLinkedList { Node head; class Node{ // 노드 클래스 int data; Node next; Node(int i){ this.data = i; } } public void add(int i){ // 리스트에 노드 추가 함수 if(head == null){ head = new Node(i); } else{ Node temp = head; while(temp.next != null){ temp = temp.next; } temp.next = new Node(i); } } public void print(){ // 리스트 출력 함수 Node temp = head; while(temp != null){ System.out.println(temp.dat.. 2017. 6. 27.
Binary Search 이분탐색 public class BinarySearchEasy { public static int search(int[] array, int iFind){ int result = 0; int left = 0; int right = array.length-1; int mid = 0; //중간 값 인덱스 while(left iFind){ // 찾는 값보다 큰 배열 값들 버리기 right = mid-1; }else{ // 찾는 값보다 작은 배열 값들 버리기 left = mid+1; } } return result; } public static void main(String[] args) { int[] array = {0, 1, 7, 8, 12, 17, 23, 25, 30, 35}; //정렬된 배열 System.out... 2017. 6. 27.
728x90
728x90