logo

Програма бульбашкового сортування на C

Бульбашкове сортування це простий та інтуїтивно зрозумілий алгоритм сортування. Він постійно міняє місцями сусідні елементи, якщо вони знаходяться в неправильному порядку, доки масив не буде відсортований. У цьому алгоритмі найбільший елемент «булькає» до кінця масиву під час кожної ітерації. Бульбашкове сортування неефективне для великих наборів даних, але воно корисне для навчальних цілей і невеликих наборів даних. У цій статті ми реалізуємо алгоритм бульбашкового сортування мовою програмування C.

Першим кроком є ​​визначення функції бульбашкового сортування. Ця функція приймає цілочисельний масив і розмір масиву як параметри. Функція нічого не повертає, оскільки вона змінює вихідний масив. Ось визначення функції:

перевести рядок до int
 void bubble_sort(int arr[], int n) { int i, j; for (i = 0; i <n - 1; i++) { for (j="0;" j <n i j++) if (arr[j]> arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } </n>

Функція має два цикли. Зовнішній цикл проходить від першого елемента до передостаннього елемента масиву. Внутрішній цикл проходить від першого елемента до передостаннього елемента невідсортованої частини масиву. Умова внутрішнього циклу n - i - 1, оскільки останні i елементів масиву вже відсортовано.

У кожній ітерації внутрішнього циклу ми порівнюємо сусідні елементи. Якщо лівий елемент більший за правий, ми міняємо їх місцями. Після завершення внутрішнього циклу найбільший елемент гарантовано опиниться в кінці невідсортованої частини масиву.

Тепер ми можемо написати функцію main, щоб перевірити реалізацію бульбашкового сортування. Ось основна функція разом з попередньою частиною:

Програма C:

 #include void bubble_sort(int arr[], int n) { int i, j; for (i = 0; i <n - 1; i++) { for (j="0;" j <n i j++) if (arr[j]> arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } int main() { int arr[] = {64, 34, 25, 12, 22, 11, 90}; int n = sizeof(arr) / sizeof(arr[0]); bubble_sort(arr, n); printf(&apos;Sorted array: &apos;); for (int i = 0; i <n; i++) { printf('%d ', arr[i]); } return 0; < pre> <p>The main function creates an integer array arr of size 7 and initializes it with random numbers. We then calculate the size of the array by dividing the size of the array by the size of an integer element. Next, we call the bubble_sort function to sort the array. Finally, we print the sorted array using a for loop.</p> <p> <strong>When we run the program, we should see the following output:</strong> </p> <pre> Sorted array: 11 12 22 25 34 64 90 </pre> <p>This output shows that our bubble sort implementation correctly sorted the array in ascending order.</p> <p>To run the program, we need to compile it using a C compiler. Here is an example <strong>compilation command for GCC:</strong> </p> <pre> gcc -o bubble_sort bubble_sort.c </pre> <p>This command compiles the bubble_sort.c file and produces an executable file named bubble_sort.</p> <p>In summary, the bubble sort algorithm repeatedly swaps adjacent elements until the array is sorted. The algorithm has a time complexity of O(n<sup>2</sup>), which makes it inefficient for large data sets. However, it is useful for educational purposes and small data sets. We implemented the bubble sort algorithm in C programming language and tested it using a simple example.</p> <h3>Characteristics:</h3> <ul> <li>Bubble sort is a simple sorting algorithm.</li> <li>It works by repeatedly swapping adjacent elements if they are in the wrong order.</li> <li>The algorithm sorts the array in ascending or descending order.</li> <li>It has a time complexity of O(n<sup>2</sup>) in the worst case, where n is the size of the array.</li> </ul> <h3>Usage:</h3> <ul> <li>Bubble sort is useful for educational purposes and small data sets.</li> <li>It is not suitable for large data sets because of its time complexity.</li> </ul> <h3>Advantages:</h3> <ul> <li>Bubble sort is easy to understand and implement.</li> <li>It requires minimal additional memory space to perform the sorting.</li> </ul> <h3>Disadvantages:</h3> <ul> <li>It is not efficient for large data sets because of its time complexity.</li> <li>It has poor performance compared to other sorting algorithms, such as quicksort and mergesort.</li> </ul> <h2>Conclusion:</h2> <p>Bubble sort is a simple and intuitive sorting algorithm that is useful for educational purposes and small data sets. However, its time complexity makes it inefficient for large data sets. Therefore, it is not commonly used in real-world applications. Other sorting algorithms, such as quicksort and mergesort, are more efficient for large data sets.</p> <hr></n;></n>

Цей вихід показує, що наша реалізація бульбашкового сортування правильно відсортувала масив у порядку зростання.

Щоб запустити програму, нам потрібно скомпілювати її за допомогою компілятора C. Ось приклад команда компіляції для GCC:

 gcc -o bubble_sort bubble_sort.c 

Ця команда компілює файл bubble_sort.c і створює виконуваний файл під назвою bubble_sort.

Підводячи підсумок, алгоритм бульбашкового сортування неодноразово міняє місцями сусідні елементи, доки масив не буде відсортовано. Алгоритм має часову складність O(n2), що робить його неефективним для великих наборів даних. Однак це корисно для освітніх цілей і невеликих наборів даних. Ми реалізували алгоритм бульбашкового сортування мовою програмування C і перевірили його на простому прикладі.

java кольори

Характеристики:

  • Бульбашкове сортування – це простий алгоритм сортування.
  • Він працює шляхом багаторазової заміни суміжних елементів, якщо вони розташовані в неправильному порядку.
  • Алгоритм сортує масив у порядку зростання або спадання.
  • Він має часову складність O(n2) у гіршому випадку, де n — розмір масиву.

Використання:

  • Бульбашкове сортування корисне для освітніх цілей і невеликих наборів даних.
  • Він не підходить для великих наборів даних через його часову складність.

Переваги:

  • Бульбашкове сортування легко зрозуміти та реалізувати.
  • Для виконання сортування потрібно мінімальний додатковий простір пам’яті.

Недоліки:

  • Він неефективний для великих наборів даних через його часову складність.
  • Він має низьку продуктивність порівняно з іншими алгоритмами сортування, такими як швидке сортування та сортування злиттям.

висновок:

Бульбашкове сортування – це простий та інтуїтивно зрозумілий алгоритм сортування, корисний для освітніх цілей і невеликих наборів даних. Однак його часова складність робить його неефективним для великих наборів даних. Тому він зазвичай не використовується в реальних програмах. Інші алгоритми сортування, такі як швидке сортування та сортування злиттям, більш ефективні для великих наборів даних.