-
C ++で組み合わせと順列を計算する方法は?
組み合わせと順列は組み合わせ論の一部です。順列は、要素が一度に1つずつ、一度にいくつか、または一度にすべて取得される場合に、要素のセットが作成できるさまざまな配置です。組み合わせとは、要素を一度に1つずつ、一部を一度に、または一度にすべて取得する場合に、要素を選択するさまざまな方法です。 合計n個の要素があり、r個の要素を配置する必要がある場合の順列の数。 合計n個の要素があり、r個の要素を選択する必要がある場合の組み合わせの数。 C++で組み合わせと順列を計算するプログラムは次のとおりです。 例 #include <iostream> using names
-
メンバー関数の静的変数はC++でどのように機能しますか?
メンバー関数の静的変数は、キーワードstaticを使用して宣言されます。静的変数用のスペースは1回だけ割り当てられ、これはプログラム全体で使用されます。また、プログラム全体でこれらの静的変数のコピーは1つだけです。 C++のメンバー関数の静的変数を示すプログラムは次のとおりです。 例 #include <iostream> using namespace std; class Base { public : int func() { static int a;
-
静的オブジェクトはいつC++で破棄されますか?
静的オブジェクトはキーワードstaticで宣言されています。それらは一度だけ初期化され、静的記憶域に保管されます。静的オブジェクトは、プログラムが終了したとき、つまりプログラムが終了するまで存続するときにのみ破棄されます。 C++で静的オブジェクトを示すプログラムは次のとおりです。 例 #include <iostream> using namespace std; class Base { public : int func() { int a = 20;
-
C ++の関数で配列パラメータのサイズを出力するにはどうすればよいですか?
データ型のサイズは、sizeof()を使用して取得できます。 C++の関数での配列パラメータの出力を示すプログラムは次のとおりです。 例 #include <iostream> using namespace std; int func(int a[]) { cout << "Size: " << sizeof(a); return 0; } int main() { int array[5]; func(array);
-
C ++で静的クラスを作成するにはどうすればよいですか?
C++には静的クラスのようなものはありません。最も近い近似は、静的データメンバーと静的メソッドのみを含むクラスです。 クラスの静的データメンバーは、クラスのオブジェクトの数に関係なく、メモリ内に1つのコピーしかないため、すべてのクラスオブジェクトによって共有されます。クラス内の静的メソッドは、静的データメンバー、他の静的メソッド、またはクラス外のメソッドにのみアクセスできます。 C++のクラスの静的データメンバーと静的メソッドを示すプログラムは次のとおりです。 例 #include <iostream> using namespace std; class Example {
-
動的計画法を使用してナップサック問題を解決するC++プログラム
これは、動的計画法を使用して0-1ナップサック問題を解決するC++プログラムです。 0-1ナップサック問題では、それぞれに重みと値を持つアイテムのセットが与えられます。合計重量が指定された制限以下になり、合計値が可能な限り大きくなるように、コレクションに含める各アイテムの数を決定する必要があります。 アルゴリズム Begin Input set of items each with a weight and a value Set knapsack capacity Create a function that returns maximum of two integers. Create a
-
シェーカーソートを実行するC++プログラム
シェーカーソートは、指定されたデータをソートするために使用されます。シェーカーソートは、バブルソートとは異なり、配列を両方向に並べ替えます。このアルゴリズムの最悪の複雑さはO(n ^ 2)です。 アルゴリズム Begin ShakerSort() function has ‘arr’ the array of data and ‘n’ the number of values, in the argument list. // Implement Sorting algorithm using
-
ストゥージソートを実行するC++プログラム
ストゥージソートは、指定されたデータをソートするために使用されます。これは再帰的なソートアルゴリズムです。ストゥージソートは、配列を2つの重なり合う部分(それぞれ2/3)に分割し、I、II、およびIの部分を並べ替えることにより、3つのステップで配列を並べ替えます。このアルゴリズムの最悪の場合の時間計算量はO(n ^ 2.7095)です。 アルゴリズム Begin Take input of data. Call StoogeSort() function with ‘a’ the array of data and ‘n’ the n
-
与えられた複雑さの制約でクイックソートを実装するC++プログラム
クイックソートは分割統治法に基づいています。このアルゴリズムの平均時間計算量はO(n * log(n))ですが、最悪の場合の複雑さはO(n ^ 2)です。ここで最悪のケースの可能性を減らすために、クイックソートはランダム化を使用して実装されています。 アルゴリズム partition(int a []、int l、int h) Begin pivot = h Index = l start = l and end = h while start < end do &nb
-
バイナリ検索とシーケンシャル検索を比較するC++プログラム
バイナリ検索とシーケンシャルまたはリニア検索はどちらも、コンピュータプログラミングで要素を検索するために使用されます。二分探索の時間計算量はO(log(n))であり、順次探索はO(n)です。 アルゴリズム Begin Algorithm for Binary Search: BinarySearch() function with ‘arr’ the array of data and ‘n’ the number of values, start and end index, iteratio
-
自己組織化リストを使用して検索を実行するC++プログラム
自己組織化リストは、基本的に、最後に検索されたアイテムに基づいて、指定された範囲のアイテムのリストを更新します。この方法では、順次検索アプローチが使用されます。このアルゴリズムは、より重要なデータをリストの先頭にシフトします。この検索手法の時間計算量はO(n)です。 アルゴリズム Begin Function FibonacciSearch(). Calculate the mid value using ‘start+fib[index-2]’ expression. If the chos
-
特定の検索シーケンスのバイナリ検索アルゴリズムを実装するC++プログラム
このプログラムでは、配列内の検索シーケンスの存在を見つけるために二分探索を実装する必要があります。二分探索の時間計算量はO(log(n))です。 必要な手順と擬似コード Begin BinarySearch() function has ‘arr’ the array of data and ‘n’ the number of values, start and end index, iteration count and b[0] be the element to be searched in the argumen
-
二分探索木で要素を検索するC++プログラム
このプログラムでは、する必要があります。二分探索を実装して、二分探索ツリー内の検索シーケンスの存在を見つけます。二分探索の最悪の場合の時間計算量はO(n)ですが、平均的な場合はO(log(n))です。 アルゴリズム Begin Construct binary search tree for the given unsorted data array by inserting data into tree one by one. Take the input of data to be searched in the BST.
-
シーケンス内でk番目に大きい要素を検索するC++プログラム
このプログラムでは、シーケンスからK番目に大きい要素を抽出する必要があります。この手法の時間計算量は、max-heapを使用して問題に取り組むことで改善できます。このプログラムの時間計算量はO(n + k * log(n))です。 アルゴリズム Begin Send the max of the heap to the end of the sequence. Heapify the remaining sequence. Repeat the process for ‘k’ times. &
-
フィボナッチ数の助けを借りて分割統治法を使用してソートされたシーケンスを検索するC++プログラム
このC++プログラムでは、フィボナッチ数を使用して分割統治法を実装します。フィボナッチ数を使用して、データ配列の中央を計算し、データ項目を検索します。このアプローチの時間計算量はO(log(n))です。 アルゴリズム Begin Assign the data to the array in a sorted manner. Take input of the element to be searched. Call FibonacciSearch() function. Calculate
-
均一二分探索を実行するC++プログラム
ここでの均一二分探索では、ルックアップテーブルを使用して二分探索を実装します。テーブルルックアップはシフトと加算よりも高速であるため、これはバイナリ検索の改善です。このアプローチの時間計算量はO(log(n))です。 アルゴリズム Begin Assign the data to the array in a sorted manner. Calculate the maximum length of lookup array and declare a new array ‘del’. As
-
線形検索を使用して配列内の最小要素を検索するC++プログラム
これは、線形探索アプローチを使用して配列の最小要素を見つけるためのC++プログラムです。このプログラムの時間計算量はO(n)です。 アルゴリズム Begin Assign the data element to an array. Assign the value at ‘0’ index to minimum variable. Compare minimum with other data element sequentially. Swap values if minimum value is more then the value at
-
二分探索を使用して配列内の最大要素を検索するC++プログラム
これは、二分探索木を使用して配列の最大要素を見つけるためのC++プログラムです。このプログラムの時間計算量はO(log(n))です。 アルゴリズム Begin Construct the Binary Search Tree using the given data elements. Next traverse the root pointer to the rightmost child node available. Print the data part of the node as the maximum data element of the given data
-
二分探索アプローチを使用して配列の最小要素を見つけるC++プログラム
これは、線形探索アプローチを使用して配列の最小要素を見つけるためのC++プログラムです。このプログラムの時間計算量はO(log(n))です。 アルゴリズム Begin Construct binary search tree for the given unsorted data array. To find out the minimum element move the pointer to the leftmost child node. Print this value as minimum value among the given data. End サンプルコー
-
二分探索アプローチを使用して配列のピーク要素を見つけるC++プログラム
このC++プログラムでは、バイナリ検索アプローチを使用して、配列のピークの1つを見つけることができます。このアルゴリズムは、アルゴリズムの時間計算量がO(log(n))である結果として見つかった最初のピークを返します。 アルゴリズム Begin PeakElement() function has ‘arr’ the array of data, start and end index in the argument list. Assign the mid of subpart of the array.