계수 정렬 알고리즘 (C 언어 구현)
1400 단어 정렬 알고리즘
계산 정렬 의 시간 복잡 도 는 O (n) 이 고 계산 정렬 은 0 에서 100 사이 의 숫자 를 정렬 하 는 가장 좋 은 알고리즘 입 니 다.
알고리즘 의 절 차 는 다음 과 같다.
1. 정렬 할 배열 의 최대 와 최소 요 소 를 찾 습 니 다.
2. 배열 의 모든 값 이 i 인 요소 가 나타 나 는 횟수 를 통계 하고 배열 C 의 i 항 에 저장 합 니 다.
3. 모든 계수 에 누적 (C 의 첫 번 째 요소 부터 모든 항목 과 이전 항목 을 추가)
4. 대상 배열 을 역방향 으로 채 우기: 각 요소 i 를 새 배열 의 C (i) 항목 에 두 고 하나의 요 소 를 넣 을 때마다 C (i) 를 1 로 줄인다.
다음은 C 언어 로 이 루어 진 코드 를 직접 붙 입 니 다.
#include
#include
#include
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
void print_arry(int *arr,int n)
{
int i;
for(i = 0; i0; i--)
{
sorted_arr[count_arr[arr[i-1]]-1] = arr[i-1];
count_arr[arr[i-1]]--;
}
free(count_arr);
}
int main() {
int n,i;
printf (" n=");
scanf ("%d", &n);
int *arr = (int *)malloc(sizeof(int) * n);
int *sorted_arr = (int *)malloc(sizeof(int) * n);
srand (time (0));
for (i = 0; i
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WEEK. 01 2022.04.03 TIL정렬(sorting)이란 이름, 학번, 학점 등의 키(key)를 항목값의 대소 관계에 따라 데이터 집합을 일정한 순서로 바꾸어 늘어놓는 작업을 의미함. 정렬 알고리즘은 안정적인 알고리즘과 그렇지 않은 알고리즘으로 나...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.