1. 버블 분류
알고리즘 아이디어 : 정렬 할 배열을 가로 지르고 매번 인접한 두 가지 요소를 비교하십시오. 계약 명령이 잘못되면 직책을 교환하십시오. 정렬을 여행 한 후 가장 큰 요소는 배열 끝까지 떠 다니게됩니다. 정렬이 완료 될 때까지 반복하십시오.
샘플 데모 :
알고리즘 구현 :
for (int i = 0; i <array.length-1; i ++) {// 최대 n-1 번 정렬 (int j = 0; j <array.length-i-1; j ++) {// (array [j]> array [j+1]) {int temp = array [j]; 배열 [j] = 배열 [j+1]; 배열 [j+1] = 온도; }}}알고리즘 시간 복잡성 : O (n2) 외부 루프를 n-1 회 비교해야하며 내부 루프를 n 회 비교해야합니다.
2. 정렬을 선택하십시오
알고리즘 아이디어 : 분류 할 배열에서 가장 작은 요소를 다시 선택하고 배열의 첫 번째 위치에서 요소와 교환하십시오. 그런 다음 나머지 요소에서 가장 작은 요소를 선택하고 두 번째 위치의 요소로 교환하십시오. 가장 작은 요소가 해당 위치의 요소 인 경우 분류가 완료 될 때까지 자체로 교환하십시오.
샘플 데모 :
알고리즘 구현 :
for (int i = 0; i <array.length; i ++) {int min = i; for (int j = i+1; }} int temp = 배열 [min]; 배열 [min] = 배열 [i]; 배열 [i] = 온도; } 시간 복잡성 : O (N2)는 N2/2 비교와 N 교환이 필요합니다
3. 정렬 삽입
알고리즘 아이디어 : 배열의 두 번째 요소에서 통과 시작하고, 요소를 이전 요소와 비교하고, 요소가 이전 요소보다 작은 경우 요소를 임시 변수로 저장하고, 이전 요소를 뒤로 이동 한 다음 요소를 적합한 위치에 삽입하십시오. 각 정렬이 완료되면 인덱스의 왼쪽에있는 요소를 주문해야하지만 여전히 이동할 수 있습니다. 반전이 적은 배열의 경우 알고리즘이 더 효율적입니다.
참고 : 반전 : 5 3 6 2 역전 용어는 5-3 5-2 3-2 6-2입니다.
샘플 데모 :
알고리즘 구현 :
for (int i = 1; i <array.length; i ++) {for (int j = i; j> 0 && array [j] <array [j-1]; j-) {int temp = array [j]; 배열 [j] = 배열 [j-1]; 배열 [j-1] = 온도; }}시간 복잡성 : O (N2) 최악의 경우 N2/2 비교, N2/2 Exchange Best Case N-1 비교, 0 교환
위의 세 가지 간단한 정렬 알고리즘 (Java를 사용하여 구현)은 내가 공유하는 모든 콘텐츠입니다. 나는 당신이 당신에게 참조를 줄 수 있기를 바랍니다. 그리고 당신이 wulin.com을 더 지원할 수 있기를 바랍니다.