Сортировка массива по возрастанию метод пузырька - C (СИ)

Узнай цену своей работы

Формулировка задачи:

подскажите так или не то совсем
Листинг программы
  1. #include <iostream>
  2. #include <stdlib.h>
  3. using namespace std;
  4. int a[10],tmp;
  5. for (int i=0;i<9;i++) {
  6. a[i] = rand()%100;
  7. cout << a[i] << "\t";
  8. }
  9. for (int i=0;i<9;i++)
  10. for (int j=0; j<9;j++)
  11. if (a[j] > a[j+1]) { ////рассматривается алгоритм сортировки по возрастанию
  12. tmp = a[j];
  13. a[j] = a[j+1];
  14. a[j+1] = tmp;
  15. }
  16. cout << "\nОтсортированный массив: \n";
  17. for (int i=0;i<9;i++)
  18. сout << a[i] << "\t";
  19. cout << "\n";
а этот метод в С++ как его переделать на Си
Листинг программы
  1. #include "stdafx.h"
  2. int _tmain(int argc, _TCHAR* argv[])
  3. {
  4. int arr[6] = {35, 8, 74, 1, 67, 7},i, flag;
  5. for (;;){
  6. flag = 0;
  7. for (i = 5; i>0; i--){
  8. if (arr[i] < arr[i-1]) {
  9. swap (arr[i],arr[i-1]);
  10. flag++;
  11. }
  12. }
  13. if (flag == 0)
  14. break;
  15. }
  16. return 0;
  17. }

Решение задачи: «Сортировка массива по возрастанию метод пузырька»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. void bubble_sort(int *data, int size) {
  4.    int i, j;
  5.    for (i = 0; i < size; ++i) {
  6.       for (j = size - 1; j > i; --j) {
  7.          if (data[j] < data[j-1]) {
  8.             int t = data[j - 1];
  9.             data[j - 1] = data[j];
  10.             data[j] = t;
  11.          }
  12.       }
  13.    }
  14. }
  15.  
  16. int main() {
  17.    int i = 0;
  18.    int data[] = { 5, 3, -1, 9, 0 };
  19.    bubble_sort(data, sizeof(data)/sizeof(data[0]));
  20.    
  21.    for (i = 0; i < sizeof(data)/sizeof(data[0]); ++i) {
  22.       printf("%d ", data[i]);
  23.    }
  24.    
  25.    return 0;
  26. }

Объяснение кода листинга программы

  1. Подключение стандартной библиотеки для работы с файлами и вывода данных (stdio.h).
  2. В функции bubble_sort() происходит сортировка массива методом пузырька.
  3. Два вложенных цикла:
    • Первый цикл перебирает все элементы массива от начала до конца.
    • Второй цикл перебирает все элементы массива от конца до начала (для каждого элемента, начиная с последнего, проверяется, больше ли он следующего элемента).
  4. Если текущий элемент больше следующего, то они меняются местами.
  5. В функции main() создается массив data[] со значениями {5, 3, -1, 9, 0}.
  6. Вызывается функция bubble_sort() для сортировки массива data[].
  7. Результат сортировки выводится на экран через цикл for и функцию printf().
  8. Возврат 0 из функции main() означает успешный конец работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.615 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы