C ++でソートされた配列の出現回数(または頻度)をカウントします
整数型要素の並べ替えられた配列が与えられ、その数、たとえばnumが与えられます。タスクは、与えられた要素numが配列に出現する回数のカウントを計算することです。 。
入力 − int arr [] ={1、1、1,2、3、4}、num =1
出力 −ソートされた配列の出現回数(または頻度)の数は− 3
入力 − int arr [] ={2、3、4、5、5、6、-7}、num =5
出力 −ソートされた配列の出現回数(または頻度)の数は− 2
入力-intarr[] ={-1、0、1、2、3}、num =7
出力 −ソートされた配列の出現回数(または頻度)の数は− 0
以下のプログラムで使用されているアプローチは次のとおりです
上記の問題を解決するために従うことができる複数のアプローチがあります。
素朴なアプローチ
-
正の数と負の数の両方を含む整数要素の配列と、配列内の頻度を見つける必要がある整数変数numを宣言します。
-
配列のサイズを計算し、すべてのデータを関数に渡してさらに処理します。
-
一時変数カウントを宣言して、変数numが出現する回数のカウントを格納します
-
配列のサイズまでiから0までのループFORを開始します
-
ループ内で、IF num =arr [i]を確認してから、countの値を1ずつインクリメントします
-
カウントを返す
-
結果を印刷します。
効率的なアプローチ
-
正の数と負の数の両方を含む整数要素の配列と、配列内の頻度を見つける必要がある整数変数numを宣言します。
-
配列のサイズを計算し、すべてのデータを関数に渡してさらに処理します。
-
一時変数カウントを宣言して、変数numが出現する回数のカウントを格納します
-
最初にポインタをlower_bound(arr、arr + size、num)として設定します
-
最初にIFをチェック=(arr +サイズ)|| (* first!=num)次に0を返します
-
終了ポインタをupper_bound(first、arr + size、num)として設定します
-
カウントを最後に設定-最初
-
返品数
-
結果の印刷
例(素朴なアプローチ)
#include <iostream> using namespace std; int frequency_count(int arr[], int num, int size){ int count = 0; for(int i=0; i<size; i++){ if(num==arr[i]){ count++; } } return count; } int main(){ int arr[] = {1, 1, 1,2, 3, 4}; int num = 1; int size = sizeof(arr)/sizeof(arr[0]); cout<<"Count of number of occurrences (or frequency) in a sorted array are: "<<frequency_count(arr, num, size); return 0; }
出力
上記のコードを実行すると、次の出力が生成されます-
Count of number of occurrences (or frequency) in a sorted array are: 3
例(効率的なアプローチ)
# include <bits/stdc++.h> using namespace std; int frequency_count(int arr[], int num, int size){ int *first = lower_bound(arr, arr+size, num); if (first == (arr + size) || *first != num){ cout<<"The Element is not present in an array "; return 0; } int count = 0; int *last = upper_bound(first, arr+size, num); count = last - first; return count; } int main(){ int arr[] = {1, 1, 1, 2, 3, 4}; int num = 1; int size = sizeof(arr)/sizeof(arr[0]); cout<<"Count of number of occurrences (or frequency) in a sorted array are: "<<frequency_count(arr, num, size); return 0; }
出力
上記のコードを実行すると、次の出力が生成されます-
Count of number of occurrences (or frequency) in a sorted array are: 3
-
C ++のソートされた配列の絶対的な個別のカウント?
配列は、同じデータ型の要素のコレクションです。 ソートされた配列 は、昇順または降順の順序で要素が格納されている配列です。 明確な数は、同じではない要素の数です。 絶対個別カウントは、要素の絶対値、つまり符号のない要素(符号なしの値)の個別カウントです。 このプログラムでは、ソートされた配列で絶対的な個別のカウントを見つけます。つまり、配列の各要素の絶対値を考慮した場合、個別の値の数をカウントします。 たとえば、 Input : [-3 , 0 , 3 , 6 ] Output : 3 配列には3つの異なる絶対値があり、要素は0、3、および6です。 これを解決するために、さまざまな
-
配列内の反転をカウントするC++プログラム
カウント反転とは、配列をソートするために必要なスイッチの数を意味します。配列がソートされている場合、反転カウント=0。反転カウント=配列が逆の順序でソートされた場合の最大値。 配列内の反転をカウントするC++プログラムを開発しましょう。 アルゴリズム Begin Function CountInversionArray has arguments a[], n = number of elements. initialize counter c := 0 for i in range 0 to n-1, do &n