목록등차수열의 합 (3)
연장챙겨
- 삽입 정렬은 해당 작업을 반복한다1. 차례대로 값을 지정한다(첫 번째 생략)2. 정렬될 위치를 찾는다(한 칸씩 앞으로 이동)3. 해당 순서에 넣기 위해 자리를 만든다(한 칸씩 뒤로 이동)(교환이 없다면 이미 정렬이 되어있는 상태) 선택 정렬과 작동이 비슷한 느낌의 방법그보다 효율적이지만 구현이 비교적 복잡하고 직관적이지 못하다추가로 더 빠르고 좋은 정렬 알고리즘이 많이 나와있어서이 정렬을 굳이 사용해보겠다가 아니라면 잘 안쓰지 않을까버블이나 선택 정렬은 만들기라도 쉬우니 귀찮다면 쓸거같은데... - 자바로 간단한 예제를 짜고 주석을 달아놓고//n개 입력 값을 받음(입력 값을 모른다는 가정)int[] array = new int[n];//정렬 중인 값int key;//비교를 위한 번호int comp..
- 버블 정렬은 해당 작업을 반복한다1. 바로 다음 차수와 비교한다2. 다음 차수보다 현재 차수가 크다면 교환(교환이 없다면 이미 정렬이 되어있는 상태) 반복 과정에서 정렬되는 순서를 직관적으로 알 수 있으며선택 정렬과 같이 쉽고 간단한 구현도라서 좋아하는 방법이다교환 여부로 정렬 완료 시점을 알 수 있어 최적화도 가능하다 - 자바로 간단한 예제를 짜고 주석을 달아놓고//n개 입력 값을 받음(입력 값을 모른다는 가정)int[] array = new int[n];//교환 여부boolean flag = true;//교환이 없을 경우 종료for(int sortIdx = 0; flag; sortIdx++) { flag = false; //교환을 위한 입력 값 순환 for(int comp..
- 선택 정렬은 해당 작업을 반복한다1. 가장 작은 수를 찾는다2. 정렬되지 않은 가장 앞 부분과 교환(교환이 없다면 이미 정렬이 되어있는 상태) 우리가 카드 등을 숫자 별로 정리한다고 생각했을 때가장 먼저 떠오르는 정렬 방법이다그만큼 쉽고 구현도 간단하지만단점은 버블 정렬과 달리 정렬 완료 시점을 알지 못해최적화가 되지 않는다는 것이다 - 자바로 간단한 예제를 짜고 주석을 달아놓고//n개 입력 값을 받음(입력 값을 모른다는 가정)int[] array = new int[n];//최소 값 번호int minIdx;//교환을 위한 입력 값 순환for(int sortIdx = 0; sortIdx array[findIdx]) { minIdx = findIdx; } } ..