кодесурса
«C

Упражнения на C: Найти мажоритарный элемент массива

script1adsense2code
script1adsense3code

Массив C: упражнение 33 с решением

Напишите программу на C, чтобы найти мажоритарный элемент массива.
Элемент большинства в массиве A [] размера n - это элемент, который появляется более чем в n / 2 раза (и, следовательно, существует не более одного такого элемента).

Иллюстрированная презентация:

«C

Пример решения:

Код C:

#include <stdio.h>
void findMajElem(int *arr1, int n) 
{
 int i,IndexOfMajElem = 0, ctr = 1;
    for(i = 1; i < n; i++) 
	{
        if(arr1[IndexOfMajElem] == arr1[i])
            ctr++;
        else
            ctr--;
         
        if(ctr == 0) {
            IndexOfMajElem = i;
            ctr = 1;
        }
    }
    ctr = 0;
    for (i = 0; i < n; i++) 
	{
        if(arr1[i] == arr1[IndexOfMajElem])
            ctr++; 
 }
    if(ctr > (n/2))
        printf("Majority Element : %d\n", arr1[IndexOfMajElem]);
    else
        printf("There are no Majority Elements in the given array.\n");
}
 
int main()
{
    int i, ctr,m;
    int arr1[] = { 4, 8, 4, 6, 7, 4 , 4, 8};	
    ctr = sizeof(arr1)/sizeof(arr1[0]);
    printf("The given array is :  ");
	for(i = 0; i < ctr; i++)
	{
	printf("%d  ", arr1[i]);
    } 
    printf("\n");
	    findMajElem(arr1, ctr);
    return 0;
}

Пример вывода:

 Данный массив: 4 8 4 6 7 4 4 8  
В данном массиве нет элементов Majority.

Блок-схема:

«Блок-схема:

Редактор кода программирования C:

Улучшите этот пример решения и опубликуйте свой код через Disqus.

Previous: написать программу на C, чтобы найти пару с заданной суммой в массиве.
Далее: написать программу на C, чтобы найти число, встречающееся нечетное количество раз в массиве.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code