はじめに - 問題の仕上げ

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;
}

おすすめ

転載: www.cnblogs.com/zhai1997/p/12036803.html