Java에서 0, 1 및 2의 배열을 정렬하는 방법
2205 단어 javaarrayalgorithms
예
Input: {0, 1, 2, 0, 1, 2}
Output: {0, 0, 1, 1, 2, 2}
Input: {0, 1, 1, 0, 1, 2, 1, 2, 0, 0, 0, 1}
Output: {0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2}
음, 0, 1, 2의 배열을 정렬할 수 있는 많은 접근 방식이 있을 수 있다는 사실을 부인할 수는 없지만, 이 블로그에서는 다른 모든 접근 방식 중에서 가장 좋고 가장 쉬웠다고 생각되는 3가지 접근 방식만 볼 것입니다. 구혼.
시작하자…
색인
무차별 대입 방식
이 접근 방식에서는 배열을 왼쪽에서 오른쪽으로 이동하면서 배열의 각 번호를 옆에 있는 번호와 비교할 것입니다. 외부 루프가 숫자를 추적하고 내부 루프가 배열의 나머지 요소와 비교하는 중첩 루프 시스템을 사용하여 이를 수행할 수 있습니다.
연산
의사 코드
for(i=0 -> N)
{
for(j=i+1 -> N)
{
if(A[i] > A[j])
{
Swap(A[i], A[j])
}
}
}
Print A
package com.Tekolio.Arrays;
import java.util.Arrays;
public class Sort_0s_1s_2s {
public static void main(String[] args) {
int[] A = {0, 1, 2, 0, 1, 2};
int n = A.length;
for(int i=0; i<n; i++) {
for(int j=i+1; j<n; j++) {
if(A[i] > A[j]) {
int temp = A[i];
A[i] = A[j];
A[j] = temp;
}
}
}
System.out.print(Arrays.toString(A));
}
}
산출
A[] = [0, 0, 1, 1, 2, 2]
시간 복잡도 — O(N²) 공간 복잡도 — O(1)
우리 모두는 N log N에서 정렬 알고리즘의 time complexity을 알고 있지만 위의 접근 방식은 훨씬 더 높은 N²의 시간 복잡도를 사용합니다. 어떻게 O)N으로 최적화할 수 있는지 봅시다.
Continue Reading .
Reference
이 문제에 관하여(Java에서 0, 1 및 2의 배열을 정렬하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ateevduggal/how-to-sort-an-array-of-0s-1s-and-2s-in-java-1n47텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)