java 데이터 구조와 알고리즘의 짝짓기 정렬 알고리즘 전체 예시
알고리즘:
기본적인 사고방식은 홀수열 배열, 짝수열 배열, 다시 홀수열, 다시 짝수열, 모든 질서가 있을 때까지 배열하는 것이다
예를 들면,
대기 그룹 [62 4 1 5 9]
첫 번째 비교 홀수열, 홀수열과 이웃 짝수열, 예를 들어 6과 2비, 4와 1비, 5와 9비
[6 2 4 1 5 9]
교환 후
[2 6 1 4 5 9]
두 번째 비교 짝수열, 즉 6과 1비, 5와 5비
[2 6 1 4 5 9]
교환 후
[2 1 6 4 5 9]
세 번째는 또 홀수열인데, 선택한 것은 2, 6, 5로 각각 그들의 이웃열과 비교하였다
[2 1 6 4 5 9]
교환 후
[1 2 4 6 5 9]
제4회 짝수열
[1 2 4 6 5 9]
교환
[1 2 4 5 6 9]
구체적인 코드:
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int[] numbers = new int[]{12,33,45,33,13,55,34,7,6};
Main.oddEventSort(numbers);
for(int i=0; i<numbers.length; i++){
System.out.print(numbers[i]+" ");
}
}
private static void oddEventSort(int[] numbers){
int temp;
for(int i=numbers.length-1; i>numbers.length/2-1; i--){
for(int j=1; j<=i; j+=2){
if(j==numbers.length-1)break;
if(numbers[j]>numbers[j+1]){
temp = numbers[j];
numbers[j] = numbers[j+1];
numbers[j+1] = temp;
}
}
for(int j=0; j<=i; j+=2){
if(j==numbers.length-1)break;
if(numbers[j]>numbers[j+1]){
temp = numbers[j];
numbers[j] = numbers[j+1];
numbers[j+1] = temp;
}
}
}
}
}
PS: 멀티코어 시대에는 이 알고리즘이 비교적 좋다고 한다자바 알고리즘에 관심이 있는 더 많은 독자들은 본 사이트의 주제를 볼 수 있습니다.《 Java 데이터 구조 및 알고리즘 튜토리얼 》、《 Java 운영 DOM 노드 기술 요약 》및
본고에서 기술한 것이 여러분의 자바 프로그램 설계에 도움이 되기를 바랍니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.