코드를 사용하여 C에서 거품 정렬을 구현하는 방법



이 기사는 알고리즘 및 작업 코드를 사용하여 C의 Bubble Sort에 대한 상세하고 포괄적 인 지식을 제공합니다.

C의 버블 정렬은 주어진 배열의 인접한 요소를 반복적으로 비교하고 잘못된 순서에 있으면 교체하는 간단한 정렬 알고리즘입니다. Bubble Sort라는 이름이 궁금 할 것입니다. 다음은이 기사에서 다루는 포인터입니다.

C에서 버블 정렬이란 무엇입니까?

정렬 기술은 알고리즘이 거품처럼 작동하고 더 가벼운 요소가 나오고 무거운 요소가 자리를 잡기 때문에 그렇게 호출됩니다. 버블 정렬 알고리즘은 패스에서 목록을 정렬합니다. 이제 n 개의 요소가있는 목록을 정렬하려면 버블 정렬에 n-1 개의 패스가 필요합니다. 더 명확하게하기 위해이 단계를 단계별로 이해하겠습니다.





Bubble-Sort-in-C

버블 정렬 알고리즘

  • 패스 1 :
    • X [0] 및 X [1]이 비교되고 X [0]> X [1] 인 경우 스왑됩니다.
    • X [1] 및 X [2]가 비교되고 X [1]> X [2] 인 경우 스왑됩니다.
    • X [2] 및 X [3]이 비교되고 X [2]> X [3] 등의 경우 스왑 됨 (& hellip)
    • 패스 1이 끝나면 목록의 가장 큰 요소가 목록의 가장 높은 인덱스에 배치됩니다.
  • 패스 2 :
    • X [0] 및 X [1]이 비교되고 X [0]> X [1] 인 경우 스왑됩니다.
    • X [1] 및 X [2]가 비교되고 X [1]> X [2] 인 경우 스왑됩니다.
    • X [2] 및 X [3]이 비교되고 X [2]> X [3] 등이면 교체됩니다 (& hellip).
    • 패스 2가 끝나면 목록에서 두 번째로 큰 요소가 목록에서 두 번째로 높은 색인에 배치됩니다.
  • n-1 통과 :
    • X [0] 및 X [1]이 비교되고 X [0]> X [1] 인 경우 스왑됩니다.
    • X [1] 및 X [2]가 비교되고 X [1]> X [2] 인 경우 스왑됩니다.
    • X [2] 및 X [3]이 비교되고 X [2]> X [3] 등의 경우 스왑 됨 (& hellip)
    • 이 패스가 끝날 때. 목록의 가장 작은 요소는 목록의 첫 번째 색인에 배치됩니다.

C의 버블 정렬 예

정렬: -5, 35, 2, 13, -15



패스 1

하이브의지도 측 조인
  • ( -5, 35 , 2, 13, -15)-> ( -5, 35 , 2, 13, -15), 여기서 알고리즘은 처음 두 요소를 비교합니다.
  • (-5, 35, 2 , 13, -15)-> (-5, 2, 35 , 13, -15), 35> 2 이후 스왑
  • (-5, 2, 35, 13 , -15)-> (-5, 2, 13, 35 , -15), 35> 13 이후 스왑
  • (-5, 2, 13,35, -15)-> (-5, 2, 13,-15, 35), 35> -15 이후 스왑

마지막 요소는 가장 큰 요소입니다.

패스 2



  • ( -5, 2 , 13, -15, 35)-> (- 5, 2 , 13, -15, 35)
  • (-5, 2, 13, 35, -15)-> (-5, 2, 13 , -15, 35)
  • (-5, 2, 13, -15 , 35)-> (-5, 2, -15, 13 , 35), 13> -15 이후 스왑

두 번째 마지막 요소는 두 번째로 큰 요소입니다.

패스 3

  • ( -5, 2 , -15, 13, 35)-> ( -5, 2 , -15, 13, 35)
  • (-5, 2, -15 , 13, 35)-> (-5, -15, 2 , 13, 35), 2> -15 이후 스왑

마지막 세 번째 요소는 세 번째로 큰 요소입니다.

패스 4

  • ( -5, -15 , 2, 13, 35)-> ( -15, -5 , 2, 13, 35), -5> -15 이후 스왑

결국 첫 번째는 가장 작고 2 nd 배열에서 두 번째로 작은 요소입니다. 따라서이 경우 5 개 요소의 배열을 정렬하려면 4 번의 패스가 필요했습니다.

알고리즘을 자세히 살펴보기 전에 C 알고리즘에서 Bubble Sort의 시간 복잡도를 살펴 보겠습니다.

인공 지능 논란 장단점

버블 정렬의 복잡성

  • 최악의 경우 복잡성 :의 위에2)
  • 최상의 사례 복잡성 :의 위에2)
  • 평균 케이스 복잡성 :의 위에)

이제 알고리즘을 빠르게 살펴 보겠습니다. 그러면 C로 Bubble 정렬 알고리즘을 작성할 수 있습니다.

버블 정렬 기능

void bubbleSort (int array [], int n) {int i, j // (i = 0 i

C 프로그램의 버블 정렬

#include // 요소를 교체하는 함수 void swap (int * a, int * b) {int temp = * a * a = * b * b = temp} // 버블 정렬 함수 void bubbleSort (int array [], int n ) {int i, j for (i = 0 i

Sorted-Array

이제 위의 C 프로그램을 실행 한 후에는 Bubble Sort의 작동 방식과이를 C 언어로 구현하는 방법을 이해했을 것입니다. 이 블로그가 유익하고 가치가 있기를 바랍니다.

확인 전 세계에 걸쳐 250,000 명 이상의 만족 한 학습자 네트워크를 보유한 신뢰할 수있는 온라인 학습 회사 인 Edureka에서 작성했습니다. Edureka의 Java J2EE 및 SOA 교육 및 인증 과정은 Java 개발자가 되고자하는 학생과 전문가를 위해 설계되었습니다. 이 과정은 Java 프로그래밍을 시작하고 Hibernate & Spring과 같은 다양한 Java 프레임 워크와 함께 핵심 및 고급 Java 개념 모두에 대해 교육하도록 설계되었습니다.

질문이 있으십니까? 이 C의 Bubble Sort 기사의 댓글 섹션에 언급 해 주시면 가능한 한 빨리 답변을 드리겠습니다.