-
華氏を摂氏に変換するC++プログラム
このプログラムでは、C++を使用して摂氏を華氏に変換する方法を説明します。私たちが知っているように、式は単純です。 アルゴリズム Begin Take the Celsius temperature in C calculate F = (9C/5)+32 return F End サンプルコード #include<iostream> using namespace std; main() { float f, c; cout << "Enter temperature in Celsius: "; cin >>
-
動的計画法を使用してフィボナッチ数を見つけるC++プログラム
フィボナッチ数列は次のようになります 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55,…… このシーケンスでは、n番目の項は(n-1) thの合計です。 および(n-2) th 用語。 生成するには再帰的アプローチを使用できますが、動的計画法では手順が簡単です。すべてのフィボナッチ数をテーブルに格納できます。そのテーブルを使用することで、このシーケンスの次の項を簡単に生成できます。 入力 −用語番号を入力として使用します。 10だと言う 出力 −10番目の fibinacciの用語は55です アルゴリズム genFiboSerie
-
基数ソートを実装するC++プログラム
基数ソートは、非比較ソートアルゴリズムです。この並べ替えアルゴリズムは、同じ位置と値を共有する数字をグループ化することにより、整数キーで機能します。基数は、記数法のベースです。 10進法では、基数または基数は10であることがわかっているので、いくつかの10進数を並べ替えるには、数値を格納するために10個の位取りボックスが必要です。 基数ソート手法の複雑さ 時間計算量:O(nk) スペースの複雑さ:O(n + k) Input − The unsorted list: 802 630 20 745 52 300 612 932 78 187 Output &minus
-
バケットソートを実装するC++プログラム
バケットソート手法では、データ項目はバケットのセットに分散されます。各バケットは、同様のタイプのデータを保持できます。配布後、各バケットは別の並べ替えアルゴリズムを使用して並べ替えられます。その後、すべての要素がメインリストに集められ、並べ替えられたフォームが取得されます。 バケットソート手法の複雑さ 時間計算量:最良の場合と平均的な場合はO(n + k)、最悪の場合はO(n2)。 スペースの複雑さ:最悪の場合のO(nk) Input − A list of unsorted data: 0.25 0.36 0.58 0.41 0.29 0.22 0.45 0.79
-
バブルソートを実装するC++プログラム
バブルソートは、比較ベースのソートアルゴリズムです。このアルゴリズムでは、隣接する要素が比較および交換されて、正しいシーケンスが作成されます。このアルゴリズムは他のアルゴリズムよりも単純ですが、いくつかの欠点もあります。このアルゴリズムは、多数のデータセットには適していません。並べ替えタスクの解決には時間がかかります。 バブルソート手法の複雑さ 時間計算量:最良の場合はO(n)、O(n 2 )平均および最悪の場合 スペースの複雑さ:O(1) Input − A list of unsorted data: 56 98 78 12 30 51 Output &mi
-
ヒープソートを実装するC++プログラム
ヒープは、最小ヒープまたは最大ヒープのいずれかである完全なバイナリツリーです。最大ヒープでは、ルートのキーは、ヒープに存在するすべてのキーの中で最大である必要があります。このプロパティは、そのバイナリツリー内のすべてのノードに対して再帰的に真である必要があります。最小ヒープは最小ヒープに似ています。 関数の説明 void BHeap ::Insert(int ele): 挿入操作を実行して、要素をヒープに挿入します。 void BHeap ::DeleteMin(): 削除操作を実行して、ヒープから最小値を削除します。 int BHeap ::ExtractMin(): ヒープから
-
マージソートを実装するC++プログラム
マージソート手法は、分割統治手法に基づいています。 whileデータセットを小さな部分に分割し、並べ替えられた順序で大きな部分にマージします。このアルゴリズムは最悪の場合にも時間計算量が少ないため、最悪の場合にも非常に効果的です。 マージソート手法の複雑さ 時間計算量:すべての場合でO(n log n) スペースの複雑さ:O(n) Input − The unsorted list: 14 20 78 98 20 45 Output − Array after Sorting: 14 20 20 45 78 98 アルゴリズム merge(array、
-
選択ソートを実装するC++プログラム
選択ソート手法では、リストは2つの部分に分割されます。ある部分ではすべての要素がソートされ、別の部分ではアイテムはソートされていません。最初に、アレイから最大または最小のデータを取得します。データ(最小など)を取得した後、最初のデータを最小データに置き換えて、リストの先頭に配置します。実行後、配列は小さくなっています。したがって、このソート手法が実行されます。 選択ソート手法の複雑さ 時間計算量:O(n 2 ) スペースの複雑さ:O(1) Input − The unsorted list: 5 9 7 23 78 20 Output − Array
-
挿入ソートを実装するC++プログラム
このソート手法はカードソート手法と似ています。つまり、挿入ソートメカニズムを使用してカードをソートします。この手法では、データセットから1つの要素を取得し、データ要素をシフトして、取得した要素をデータセットに挿入し直す場所を作成します。 挿入ソート手法の複雑さ 時間計算量:最良の場合はO(n)、平均および最悪の場合はO(n2) スペースの複雑さ:O(1) Input − The unsorted list: 9 45 23 71 80 55 Output − Array after Sorting: 9 23 45 55 71 80 アルゴリズム in
-
シェルソートを実装するC++プログラム
シェルソート手法は、挿入ソートに基づいています。挿入ソートでは、アイテムを正しい位置に挿入するために大きなブロックをシフトする必要がある場合があります。シェルソートを使用すると、多数のシフトを回避できます。並べ替えは特定の間隔で行われます。各パスの後、間隔が短くなり、間隔が短くなります。 シェルソート手法の複雑さ 時間計算量:最良の場合はO(n log n)、その他の場合はギャップシーケンスに依存します。 スペースの複雑さ:O(1) Input − The unsorted list: 23 56 97 21 35 689 854 12 47 66 Output &
-
カウントソートを実装するC++プログラム
カウントソートは安定したソート手法であり、少数のキーに従ってオブジェクトをソートするために使用されます。キー値が同じキーの数をカウントします。この並べ替え手法は、異なるキー間の差がそれほど大きくない場合に効率的です。そうでない場合は、スペースが複雑になる可能性があります。 ソート手法のカウントの複雑さ 時間計算量:O(n + r) スペースの複雑さ:O(n + r) 入力 −ソートされていないデータのリスト:2 5 6 2 3 10 3 6 7 8 出力 −並べ替え後の配列:2 2 3 3 5 6 6 7 8 10 アルゴリズム countingSort(array、
-
補間検索アルゴリズムを実装するC++プログラム
二分探索手法の場合、リストは等しい部分に分割されます。補間検索手法の場合、プロシージャは補間式を使用して正確な位置を見つけようとします。推定位置を見つけた後、その位置を使用してリストを分離できます。毎回正確な位置を見つけようとするため、検索時間が短縮されます。この手法では、アイテムが均一に分散されている場合、アイテムを簡単に見つけることができます。 補間検索手法の複雑さ 時間計算量:O(log 2 (log 2 n))平均的な場合、O(n)は最悪の場合(アイテムが指数関数的に分散される場合) スペースの複雑さ:O(1) Input − A sorted li
-
DFSを使用して有向グラフの接続性をチェックするC++プログラム
グラフの接続性を確認するために、トラバーサルアルゴリズムを使用してすべてのノードをトラバースしようとします。トラバーサルの完了後、アクセスされていないノードがある場合、グラフは接続されていません。 有向グラフの場合、接続を確認するためにすべてのノードからトラバースを開始します。 1つのエッジに外向きのエッジのみがあり、内向きのエッジがない場合があるため、他の開始ノードからノードにアクセスできなくなります。 この場合、トラバーサルアルゴリズムは再帰的なDFSトラバーサルです。 入力 :グラフの隣接行列 0 1 0 0 0 0 0 1 0
-
グラフが強く接続されているかどうかをチェックするC++プログラム
有向グラフでは、1つのコンポーネントの頂点の各ペアの間にパスがある場合、コンポーネントは強く接続されていると言われます。 このアルゴリズムを解決するには、まず、DFSアルゴリズムを使用して各頂点の終了時間を取得し、次に転置されたグラフの終了時間を検索します。次に、頂点をトポロジカルソートの降順で並べ替えます。 入力 :グラフの隣接行列。 0 0 1 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 出力 :以下は、与え
-
有向グラフにオイラー閉路が含まれているかどうかを確認するC++プログラム
オイラーサイクル/回路はパスです。これにより、すべてのエッジを1回だけ訪問できます。同じ頂点を複数回使用できます。オイラー回路は、特殊なタイプのオイラーパスです。オイラーパスの開始頂点がそのパスの終了頂点にも接続されている場合、それはオイラー回路と呼ばれます。 グラフがオイラーであるかどうかを確認するには、2つの条件を確認する必要があります- グラフを接続する必要があります。 各頂点の次数と次数は同じである必要があります。 入力 −グラフの隣接行列。 0 1 0 0 0 0 0 1 0 0 0 0 0
-
Cセミコロンを使用せずに1からNまでの数字を印刷するプログラム
ここでは、問題のトリッキーな解決策を見ていきます。セミコロンを使用せずに1からNまでのいくつかの数字を印刷します。 この問題は2つの異なる方法で解決できます。 1つ目は反復法で、2つ目は再帰法です。 方法1 printf()関数は文字列の長さを返すため、ゼロ以外の値になります。結果を出力する条件で論理ANDを実行できます。次に、カウンターの値を増やします。 サンプルコード #include<stdio.h> #define N 20 int main(int num, char *argv[]) { while (num <=N && printf(
-
疑似乱数生成用の線形合同法を実装するC++プログラム
線形合同法は、乱数発生器の非常に単純な例です。これは、最も古く、最もよく知られている疑似乱数生成アルゴリズムの1つです。このメソッドで使用される関数- Xn+1=(aXn + C) mod m ここで、Xは疑似乱数値のシーケンスであり、 m,0<m— the “modulus" a,0<a<m — the "multiplier" c,0<c<m — the "increment" X0, 0<x0<m — the "seed&qu
-
C指定された数値の桁を1つのステートメントで合計するプログラム
このセクションでは、複数のステートメントを記述せずに桁の合計を見つける方法を説明します。言い換えれば、1つのステートメントで数字の合計を見つけることができます。 ご存知のように、桁の合計を求めるには、数値を10で割った後の余りを取り、最後の桁を切り取り、数値が0になるまで何度も10で除算します。 これらのタスクを1つのステートメントで実行するには、forループを使用できます。ご存知のとおり、forループには3つの異なるセクションがあります。この場合、初期化フェーズでは何もしていません。次に、条件チェックフェーズでは、数値が0より大きいかどうかをチェックしています。インクリメントデクリメント
-
ミドルスクエア法を使用して乱数を生成するC++プログラム
ミドルスクエア法は、乱数を生成する最も簡単な方法の1つです。このメソッドは、同じ番号の生成を繰り返し開始するか、シーケンス内の前の番号に循環して、無期限にループします。 n桁の乱数のジェネレーターの場合、ピリオドはnを超えることはできません。真ん中のn桁がすべてゼロの場合、ジェネレーターはゼロを永久に出力しますが、これらのゼロの実行は簡単に検出できますが、頻繁に発生するため、この方法を実用化することはできません。 Input − Enter the digit for random number:4 Output − The random numbers are: 63
-
確率分布関数を使用して乱数を生成するC++プログラム
確率密度関数(pdf)は、この確率変数が特定の値をとる相対的な尤度を表す関数です。連続確率変数の密度とも呼ばれます。 確率変数が特定の値の範囲内に入る確率は、その範囲でのこの変数の密度の積分によって与えられます。したがって、密度関数の下で、水平軸より上で、最小値と最大値の間の領域によって与えられます。範囲の。確率分布は、この確率密度関数に基づいています。 アルゴリズム サンプルコード #include using namespace std; int n =6; int main(int argc、char ** argv){int pdf =0; for(int i =0; i 3