정렬 선택(자바 구현)
2040 단어 데이터 구조 와 알고리즘
// :
public static void selectionSort(int[] a){
int N = a.length;
for(int i = 0; i < N - 1; i++){
int min = i;
for(int j = i + 1; j < N; j++){
// a[i] a[i+1...N-1]
if(a[j] < a[min]){//
min = j;
}
}
if(min != i){
int temp = a[i];
a[i] = a[min];
a[min] = temp;
}
}
}
알고리즘 성능 분석:시간 복잡 도 는 O(N^2)이 고 길이 가 N 인 배열 에 대해 N(N-1)/2 차 비교 와 0 에서 N-1 차 교환 이 필요 합 니 다.가장 좋 은 상황 은 이미 질서 가 있 고 0 번 교환 하 는 것 이다.최 악의 경우 N-1 회 교환 하기;역순 교환 N/2 회.불안,예 를 들 어 3325,첫 번 째 3 회 와 2 가 교환 되 어 처음에 뒤에 있 던 3 열 이 첫 번 째 3 위 에 올 랐 다.로 버 트 Sedgewick/Kevin Wayne 이 작성 한'알고리즘'4 판 선택 정렬 을 본 후에 프로그램 이 알고리즘 교환 횟수 를 증가 시 키 고 교환 작업 을 내부 순환 에 넣 어서 정렬 할 요소 중 최소 요소 보다 작은 것 만 있 으 면 교환 작업 이 발생 할 수 있 음 을 발견 했다.실제로 정렬 할 최소 요 소 를 찾 은 다음 에 이전의 최소 요소 와 교환 할 수 있다.많은 시간 을 절약 할 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[JAVA] 배열 회전 출력요소 가 출력 을 시작 하 는 위치 에 주의 하 십시오. 모두 몇 라운드 의 수출 이 있 습 니까? n/2 + 1 매 라 운 드 는 상, 우, 하, 좌 로 나 뉜 다. 각 방향의 시작 위치 와 좌표 의 관 계 를 구...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.