Сортировка массива методом деления - C (СИ)

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

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

Помогите пожалуйста с кодом---Сортировка массива методом диления, размер массива 7 направление сортировки по убыванию.

Решение задачи: «Сортировка массива методом деления»

textual
Листинг программы
// ConsoleApplication22.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "targetver.h"
#include "iostream"
#include "cstdlib"
#include <stdio.h>
#include <tchar.h>
#include <conio.h>
#include <time.h> 
 
 
 
#define n 10
int main()
{
    setlocale(LC_ALL, "Russian");
    int i = 0, a = 0, b = 0, k = 0;
    int nums[n];
    srand(time(NULL));
 
    for (i = 0; i < n; i++)
    {
        nums[i] = 0 + rand() % 11;
        printf("%d ", nums[i]);
 
    }
    printf("\n");
    // сортировка
    int countswap = 0; //счетчик обменов
    int countcompare = 0; //счетчик сравнений
    
    for (i = 0; i < n; ++i)
    {
        
        int temp = nums[i]; //текущая позиция
        int left = 0; //левый край
        int right = i; //правый край
        while (left<right) //пока левый край меньше правого
        {
            int middle = (left + right) / 2; //находим середину
            if (temp >= nums[middle]) //если элемент больше середины
            {
                left = middle + 1; //левый край правее середины
                
            }
            else
                right = middle; //иначе правый край равен середине
            countcompare++;
 
        }
        int j;
        for (j = i; j > left; --j)
        {
            int k;
            k = nums[j - 1];
            nums[j - 1] = nums[j]; //обмен
            nums[j] = k;
            countswap++;
        }
    }
    printf("\n");
    printf("Количество сравнений: %d\n", countcompare);
    printf("Количество обменов: %d\n", countswap);
    //------------------------------------
    printf("отсортированный\n");
    for (i = 0; i < n; i++)
        printf("%d ", nums[i]);
 
    getch();
}

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


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

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

9   голосов , оценка 4.444 из 5
Похожие ответы