배열 정렬이란 무엇입니까?
배열 정렬은 배열의 개별 요소를 가져 와서 사용자가 정의한 일련의 규칙에 따라 논리적 인 순서로 정렬하는 프로세스입니다. 이 프로세스에는 한 번에 한 요소 씩 배열을 단계별로 실행하고 주변 요소에 대해 해당 요소를 테스트하여 배열 내의 다른 인덱스로 이동해야하는지 여부가 결정됩니다. 배열 정렬을 수행 할 때 사용할 수있는 여러 알고리즘이 있습니다. 특히 정렬 조건이 임의의 것이 아닌 숫자 인 경우에 사용할 수 있습니다. 대부분의 배열 정렬 알고리즘은 속도와 효율성으로 측정되며, 가장 느린 알고리즘은 프로그래밍하기가 가장 쉽고 가장 빠른 알고리즘은 훨씬 더 복잡합니다.
가장 간단한 배열 정렬 알고리즘을 버블 정렬이라고하며 가장 느립니다. 프로세스는 배열의 각 요소를 단계별로 실행하는 루프로 시작합니다. 현재 요소는 배열의 다음 요소와 비교되며 다음 요소의 값이 현재 요소보다 낮 으면 인덱스의 데이터가 전환됩니다. 버블 정렬의 단점은 배열을 정렬하는 데 필요한 스왑을 모두 만들려면 배열을 여러 번 반복해야한다는 것입니다. 가장 기본적인 구현에서 정렬은 포함 된 각 요소에 대해 한 번의 완료 시간 전체 배열을 반복합니다.
선택 정렬은 버블 정렬보다 약간 더 효율적인 방식으로 배열 정렬을 수행하는 알고리즘을 사용하지만 여전히 배열을 여러 번 반복해야합니다. 이 정렬은 배열을 반복하여 가장 낮은 값의 요소를 찾습니다. 그런 다음이 요소는 배열의 첫 번째 색인에 배치되고 일부 추적 변수가 증가합니다. 그런 다음 사이클이 반복되어 배열의 두 번째 인덱스에 배치 될 다음으로 가장 낮은 값을 찾습니다. 프로세스는 최고 값 요소가 배열의 마지막 인덱스에 놓일 때까지 계속됩니다.
효율적이지만 때로는 구현하기 어려운 배열 정렬 방법을 빠른 정렬이라고합니다. Quicksorting은 배열에 포함 된 가능한 모든 값의 중간에있는 값을 가져옵니다. 알고리즘은 배열의 모든 요소를 살펴보고 배열의 끝에 중간 수보다 큰 모든 값을 시작 부분에 더 낮은 값을 넣습니다. 이 프로세스는 마지막에 전체 어레이가 정렬 될 때까지 어레이의 블록에서 재귀 적으로 수행됩니다. 배열에 사용 된 중간 값이 상당히 정확하다고 가정하면 매우 빠른 정렬 방법이 될 수 있습니다.
배열 정렬 알고리즘에 영향을 줄 수있는 한 가지 요소는 데이터가 동등성을 테스트하는 수단입니다. 값이 큰 값은 단순한 숫자를 쉽게 비교할 수 있지만 여러 조건을 비교해야하는 복잡한 데이터 클래스에는 해당되지 않을 수 있습니다. 한 요소가 다른 요소보다 크거나 작은 지 비교하는 데 시간이 오래 걸리면 알고리즘이 배열을 정렬하는 데 시간이 오래 걸립니다.