1、データ構造とアルゴリズムの関係:
(1)データ構造、アルゴリズムの基礎であります
(2)操作対象アルゴリズムは、このアルゴリズムのデータ構造が適切である構築するアルゴリズムの設計では、データ構造であります
(3)データ構造の設計は、選択されたアルゴリズム設計データ構造、選択データ記憶装置(アレイまたはリスト)の要件を満たすように設計良いアルゴリズムであります
(4)データ構造は、データ記憶構造、基本的な動作、およびアルゴリズムの論理構造は、データ構造に基づいて、実用的な問題を解決する方法について懸念ことが懸念されます
2.アルゴリズムとは何ですか
アルゴリズムが出力する入力データを変換するため、問題を解決するための一連のステップです。
3、アルゴリズムの重要な特徴:
(1)限られた性質:限られたステップの実行の終了後。
(2)不確実性:明確な指示。
(3)実現可能性:各操作を正確に行うことができます。
(4)入力:このアルゴリズムは、ゼロまたはそれ以上の入力を有します。
(5)出力:アルゴリズムは、1つまたは複数の入力を有します。
図4は、次のような関係が確立されていることを証明します:
(1)
(2)
確立された関係を証明するために、即ち、必要性は3つの正常な量のC1、C2、およびN0、その結果を検索する場合、N> = N0時間満たすのC1(N乗)<=式<= C2(N乗)
5、
6、
7、[ACM楽曲タイトル練習3N + 1] Q:整数nは、nがある場合でも、2で割ること、開始; nは奇数である場合、得られるまで新しい値で上記の手順を繰り返し、3から1に追加n = 1の場合に停止されます。N = 22は、常に、例えば、同一の配列は、任意の整数nについて22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1であり、このアルゴリズムを得られますN = 1で終わる、少なくとも100万の整数のための推測が正しいです。与えられたmに対して、セクションの数(1を含む)要素の配列は、Nサイクル長と呼ばれます。ループ部の最大長さとJ(iとjを含む)の整数iを計算します。
输人:每行包含两个整数 i 和 j 。所有整效大于0,小于1 000 000
给出:对于每对整数 i 和 j,按原来的顺序输出 i 和 j,然后输出两者之间的整数中的最大循环节长度,它们之间用单个空格分隔,且在同一行输出。对于读入的每一组数据,在输
中应位于单独的一行。
输入样本:
1 10
100 200
201 210
900 1000输出结果:
1 10 20
100 200 125
201 210 89
900 1000 174
核心代码(求长度):
int cycle(int i,int j){ int k,count=0,maxc=0; for(k=i;k<=j;k++){//两个数之间的数字依次判断比较 while(k!=1){ if(k%2==0)//偶 数 k=k/2; else//奇数 k=3*k+1; count++; } if(maxc!=0)//count大于 0 maxc=count; } return maxc; }