C 프로그래밍에서 버블 정렬을 구현하는 방법은 무엇입니까?

C Peulogeulaeming Eseo Beobeul Jeonglyeol Eul Guhyeonhaneun Bangbeob Eun Mueos Ibnikka



배열 또는 컨테이너 정렬은 프로그래밍의 일반적인 프로세스이며 C++는 구현할 다양한 정렬 알고리즘을 제공합니다. 그 중, 버블 정렬 C++에서 구현하는 가장 쉽고 간단한 알고리즘입니다.

이 기사에서는 C 프로그래밍에서 버블 정렬을 구현하는 쉬운 방법에 대해 설명합니다.

C 프로그래밍에서 버블 정렬이란?

~ 안에 버블 정렬 , 요소는 사용자의 선호도에 따라 오름차순 또는 내림차순으로 순서대로 반복적으로 배열됩니다. C의 정렬 프로세스는 첫 번째 인덱스를 검색하고 첫 번째 요소와 두 번째 요소를 비교하는 것으로 시작됩니다. 첫 번째 인덱스 요소가 두 번째 인덱스 요소보다 크면 교체됩니다. 모든 요소가 정렬될 때까지 두 번째 인덱스 요소와 세 번째 요소에 대해 동일한 비교 및 ​​교환 프로세스가 반복됩니다.

버블 정렬은 어떻게 작동합니까?

다음은 구현을 위한 단계별 가이드입니다. 버블 정렬 C에서

입력 배열을 고려해 봅시다 {5, 3, 1, 4, 6} . 이 배열을 정렬하려면 버블 정렬 , 우리는 아래 패스를 따릅니다.

첫 번째 패스:

(5 3 1 4 6) -> (3 5 1 4 6), 5 > 3부터 스왑

(3 5 1 4 6) -> (3 1 5 4 6), 5 > 1부터 스왑

(3 1 5 4 6) -> (3 1 4 5 6), 5 > 4부터 스왑

(3 1 4 5 6) -> (3 1 4 5 6), 모든 요소가 순서대로 있으므로 교체하지 않습니다.

두 번째 패스:

(3 1 4 5 6) -> (1 3 4 5 6), 3 > 1부터 스왑

(1 3 4 5 6) -> (1 3 4 5 6), 모든 요소가 순서대로 있으므로 교체하지 않습니다.

세 번째 패스:

(1 3 4 5 6) -> (1 3 4 5 6), 모든 요소가 순서대로 있으므로 교체하지 않습니다.

배열이 정렬되고 알고리즘은 스왑이 없었기 때문에 세 번째 패스 후에 이를 인식합니다.

C의 버블 정렬 프로그램

다음은 버블 정렬 C 프로그래밍에서.

#include

정수 기본 ( ) {

정수 정렬 [ 100 ] , N , 엑스 , 그리고 , 에스 ;

printf ( '배열 요소 수를 입력하십시오: ' ) ;

스캔프 ( '%디' , & N ) ;

printf ( '요소 값을 입력하십시오: ' ) ;

~을 위한 ( 엑스 = 0 ; 엑스 < N ; 엑스 ++ )

스캔프 ( '%디' , & 정렬 [ 엑스 ] ) ;

~을 위한 ( 엑스 = 0 ; 엑스 < N - 1 ; 엑스 ++ ) {

~을 위한 ( 그리고 = 0 ; 그리고 < N - 엑스 - 1 ; 그리고 ++ ) {

만약에 ( 정렬 [ 그리고 ] > 정렬 [ 그리고 + 1 ] ) {

에스 = 정렬 [ 그리고 ] ;

정렬 [ 그리고 ] = 정렬 [ 그리고 + 1 ] ;

정렬 [ 그리고 + 1 ] = 에스 ; }

}

}

printf ( '버블 정렬을 사용한 후 정렬된 배열: ' ) ;

~을 위한 ( 엑스 = 0 ; 엑스 < N ; 엑스 ++ )

{

printf ( '%d' , 정렬 [ 엑스 ] ) ;

}

반품 0 ;

}

위의 C 프로그램은 먼저 100개의 요소 크기로 배열을 초기화하고 사용자에게 정렬해야 하는 요소의 크기를 입력하도록 요청한 다음 사용자로부터 요소를 하나씩 입력했습니다. 배열에 입력된 값은 순서가 잘못된 경우 코드가 요소를 교체하므로 중첩 루프를 사용하여 정렬됩니다. 마지막으로 for 루프를 사용하여 정렬된 배열을 인쇄합니다.

산출

결론

버블 정렬 배열의 각 요소를 인접한 요소와 비교하고 마지막 요소가 정렬될 때까지 일치시켜 배열을 오름차순 또는 내림차순으로 정렬하는 데 사용되는 정렬 알고리즘입니다. 위에서 언급한 가이드라인에서 기본적인 버블 정렬 알고리즘 및 C 프로그래밍에서의 구현.