На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
[!] Как относитесь к модерированию на этом форуме? Выскажите свое мнение здесь
Модераторы: JoeUser, Qraizer
  
> Сортировка вставками в целочисленной матрице с использование функции, Матрица,сортировка вставками,функции c++
    Здравствуйте,нужна помощь в написании кода.Заранее спасибо :)

    Вот само задание:

    Дана целочисленная матрица размером MxN. Пусть для каждой строки
    матрицы определена функция f(a), равная количеству четных чисел среди
    элементов строки a. Упорядочить (переставить) строки матрицы по
    невозрастанию в соответствии со следующим критерием: строка a считается
    "больше" строки b, если f(a) > f(b). Используйте алгоритм сортировки
    вставками.
      Схема, например, такая:
      ExpandedWrap disabled
        // ConsoleApplication1.cpp: определяет точку входа для консольного приложения.
        // TABSIZE=4
         
        #include "stdafx.h"
        #include <stdlib.h>
         
        #define M   5
        #define N   8
         
        int A[M][N]={{ 2,  0,  3, 6,-2, 9, 1, 1},   //4
                     { 1,  2,  2, 2, 5,19,11,16},   //4
                     { 4, 10,  3,16,-2, 9,-5, 8},   //5
                     { 3, 20, 31,61,-2, 9,-1,11},   //2
                     {34,412,-32,62,-2, 3,21,12}};  //6
         
        int f( const int *a)
        {
            int чётных=0;
            for( int i=0; i<N; i++)
                if( !(a[i]&1) ) чётных++;
            return чётных;
        }
         
        int sort_f( const void *a, const void *b) { return f((int*)a) - f((int*)b); }
         
        int main()
        {
            qsort( &A[0][0], M, sizeof(int)*N, sort_f); // быстрая. Заменить на сортировку вставками
            return 0;
        }
      1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script Execution time: 0,0621 ]   [ 15 queries used ]   [ Generated: 25.06.19, 12:39 GMT ]