Cách triển khai Sắp xếp bong bóng trong C với Mã



Bài viết này sẽ cung cấp cho bạn kiến ​​thức chi tiết và toàn diện về Bubble Sort trong C với thuật toán và mã làm việc.

Sắp xếp bong bóng trong C là một thuật toán sắp xếp đơn giản, so sánh lặp lại các phần tử liền kề của mảng đã cho và hoán đổi chúng nếu chúng không đúng thứ tự. Bạn có thể thắc mắc về cái tên Bubble Sort. Sau đây là các con trỏ được đề cập trong bài viết này:

Sắp xếp bong bóng trong C là gì?

Kỹ thuật sắp xếp được gọi như vậy bởi vì thuật toán hoạt động giống như một bong bóng, các phần tử nhẹ hơn xuất hiện và các phần tử nặng hơn lắng xuống. Thuật toán Bubble Sort sắp xếp danh sách theo đường chuyền. Bây giờ, để sắp xếp một danh sách có n phần tử Sắp xếp bong bóng yêu cầu n-1 lần chuyển. Để làm rõ hơn, hãy hiểu điều này từng bước.





Bubble-Sort-in-C

con rối vs ansible vs đầu bếp

Thuật toán sắp xếp bong bóng

  • Vượt qua 1 :
    • X [0] & X [1] được so sánh và hoán đổi vị trí nếu X [0]> X [1]
    • X [1] & X [2] được so sánh và hoán đổi vị trí nếu X [1]> X [2]
    • X [2] & X [3] được so sánh và hoán đổi nếu X [2]> X [3], v.v. & hellip
    • Cuối đường chuyền 1, phần tử lớn nhất của danh sách được đặt ở chỉ mục cao nhất của danh sách.
  • Vượt qua 2:
    • X [0] & X [1] được so sánh và hoán đổi vị trí nếu X [0]> X [1]
    • X [1] & X [2] được so sánh và hoán đổi vị trí nếu X [1]> X [2]
    • X [2] & X [3] được so sánh và hoán đổi nếu X [2]> X [3], v.v. & hellip
    • Ở cuối Pass 2, phần tử lớn thứ hai của danh sách được đặt ở chỉ số cao thứ hai của danh sách.
  • Vượt qua n-1:
    • X [0] & X [1] được so sánh và hoán đổi vị trí nếu X [0]> X [1]
    • X [1] & X [2] được so sánh và hoán đổi vị trí nếu X [1]> X [2]
    • X [2] & X [3] được so sánh và hoán đổi nếu X [2]> X [3], v.v. & hellip
    • Vào cuối cuộc vượt qua này. Phần tử nhỏ nhất của danh sách được đặt ở chỉ mục đầu tiên của danh sách.

Ví dụ về Sắp xếp bong bóng trong C

Mảng: -5, 35, 2, 13, -15



Vượt qua 1

  • ( -5, 35 , 2, 13, -15) -> ( -5, 35 , 2, 13, -15), Ở đây, thuật toán so sánh hai phần tử đầu tiên.
  • (-5, 35, 2 , 13, -15) -> (-5, 2, 35 , 13, -15), Hoán đổi từ 35> 2
  • (-5, 2, 35, 13 , -15) -> (-5, 2, 13, 35 , -15), Hoán đổi từ 35> 13
  • (-5, 2, 13,35, -15) -> (-5, 2, 13,-15, 35), Hoán đổi từ 35> -15

Phần tử cuối cùng là phần tử lớn nhất.

Vượt qua 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), Hoán đổi từ 13> -15

Phần tử cuối cùng thứ hai là phần tử lớn thứ hai.

Vượt qua 3

  • ( -5, 2 , -15, 13, 35) -> ( -5, 2 , -15, 13, 35)
  • (-5, 2, -15 , 13, 35) -> (-5, -15, 2 , 13, 35), Hoán đổi kể từ 2> -15

Phần tử cuối cùng thứ ba là phần tử lớn thứ ba.

Vượt qua 4

  • ( -5, -15 , 2, 13, 35) -> ( -15, -5 , 2, 13, 35), Hoán đổi kể từ -5> -15

Cuối cùng, đầu tiên là nhỏ nhất & 2 nd là phần tử nhỏ thứ hai trong mảng. Vì vậy, trong trường hợp này, cần bốn lần chuyển để sắp xếp một mảng gồm 5 phần tử.

Trước khi xem xét thuật toán chi tiết, hãy xem xét độ phức tạp về thời gian của thuật toán Sắp xếp bong bóng trong C.

Sự phức tạp của Sắp xếp bong bóng

  • Trường hợp phức tạp tệ nhất:Trên2)
  • Độ phức tạp của trường hợp tốt nhất:Trên2)
  • Độ phức tạp của trường hợp trung bình:Trên)

Bây giờ chúng ta hãy nhanh chóng xem xét thuật toán, để tiếp tục chúng ta có thể viết thuật toán sắp xếp bong bóng trong C.

Chức năng sắp xếp bong bóng

void bubbleSort (int array [], int n) {int i, j // Chuyển vào Bubble Sort for (i = 0 i

Sắp xếp bong bóng trong chương trình C

#include // Hàm hoán đổi các phần tử void swap (int * a, int * b) {int temp = * a * a = * b * b = temp} // hàm sắp xếp bong bóng void bubbleSort (int array [], int n ) {int i, j for (i = 0 i

Sorted-Array

Bây giờ sau khi thực hiện chương trình C ở trên, bạn đã hiểu cách hoạt động của Bubble Sort và cách triển khai nó trong ngôn ngữ C. Tôi hy vọng blog này là thông tin và giá trị gia tăng cho bạn.

Kiểm tra của Edureka, một công ty học trực tuyến đáng tin cậy với mạng lưới hơn 250.000 người học hài lòng trải dài trên toàn cầu. Khóa đào tạo và cấp chứng chỉ về Java J2EE và SOA của Edureka được thiết kế cho sinh viên và các chuyên gia muốn trở thành Nhà phát triển Java. Khóa học được thiết kế để cung cấp cho bạn khởi đầu về lập trình Java và đào tạo bạn về cả khái niệm Java cốt lõi và nâng cao cùng với các khung Java khác nhau như Hibernate & Spring.

Có một câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần nhận xét của bài viết Sắp xếp bong bóng trong C này và chúng tôi sẽ liên hệ lại với bạn trong thời gian sớm nhất.