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

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

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

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

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

textual
Листинг программы
#include <stdio.h>
 
void bubble_sort(int *data, int size) {
   int i, j;
   for (i = 0; i < size; ++i) {
      for (j = size - 1; j > i; --j) {
         if (data[j] < data[j-1]) {
            int t = data[j - 1];
            data[j - 1] = data[j];
            data[j] = t;
         }
      }
   }
}
 
int main() {
   int i = 0;
   int data[] = { 5, 3, -1, 9, 0 };
   bubble_sort(data, sizeof(data)/sizeof(data[0]));
   
   for (i = 0; i < sizeof(data)/sizeof(data[0]); ++i) {
      printf("%d ", data[i]);
   }
   
   return 0;
}

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

  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
Похожие ответы