バブルアルゴリズムと再帰アルゴリズムデモ

  パッケージcom.kindess.springbootswager.controller。

  輸入はjava.util.ArrayList;

  輸入java.util.Collections。

  輸入はjava.util.List;

  / **

  * @author kindess

  * @descriptionテストのデモ

  * /

  パブリッククラスTest {

  / **

  *再帰的アルゴリズム

  *

  * @Param A

  * @return

  * /

  パブリックstatic int型countNum(INT NUM){

  //合計:1 + 2 + ... + NUM

  / * IF(NUM> 0){

  NUM + countNum(NUM - 1)を返します。

  }

  リターン0; * /

  //階乗:1 * 2 * ... + NUM

  IF(NUM <= 1){

  1を返します。

  }

  num戻り* countNum(NUM - 1);

  }

  / **

  キャッチアヒルと半分を販売するために、各村を、販売するアヒルをキャッチするために、各村のために1:*質問の意味。

  *この後、彼はどのように多くのカモとき?どのように多くのカモ各村の販売を通じてキャッチし始めていた7羽の2アヒルの後に村を去った、と彼に尋ねましたか?

  *

  *アルゴリズムのステップ:

  * 1)注文numが2に等しく、nは7に等しいです。

  アヒル日NUM =(NUM + 1)* 2の合計数を計算する前に* 2)。

  * 3)を算出して出力する第n日販売アヒルの数。

  nは1を減算* 4)は、出力アヒルのNUMの総数は、そうでない場合、再帰関数を算出する進行場合、nは、0よりも大きいか否かを判定する。

  *

  @param NUMアヒルの残りの最後の日の数*

  村の数* @paramカウンタ

  * @return

  * /

  パブリックstatic int型のduck_sale(int型NUM、INTカウンタ){

  =(+ 1)* 2。

  ; - :のSystem.out.println(1)+(NUM / 2 "最初の" +カウンタ+ "村の数は、アヒルの販売されています")

  // 1によるカウンタ

  カウンター - ;

  IF(カウンタ> 0){

  //アヒルの前述の説明は、販売アヒル村の数を計算するために再帰呼び出しメソッドを販売していません

  duck_sale(NUM、カウンタ)。

  } そうしないと {

  完売//説明アヒル

  System.out.println(「アヒルの総数である:」+ NUM)。

  }

  NUMを返します。

  }

  / ***

  *角谷定理。それが偶数の場合は自然数を入力し、それが奇数の場合、それは3とプットを乗じて、2でそれを置きます。そのような有限の計算後、合計値1が自然に得ることができます。

  *自然数1を求めた後、利用可能な回数。

  *として:入力22、

  22の出力11 17 * 34である5,226,134,020,105,168,421

  * STEP = 16

  *

  *アルゴリズムのステップ:

  * 1)はカウンタ=カウント自然数の入力値を定義0

  * 2)は、nが偶数であるか否かを判断し、YESの場合、N = N / 2ではない場合、N = N * 3 + 1である場合

  * 3))かどうかを決定するnは1に等しく、出力カウンタ(jiaoguを呼び出すために継続しない場合

  * 鄭州ルック婦人科病院http://www.ytsgfk120.com/

  * @Param自然数n個の入力値が必要

  複数回呼び出すために必要な* @Paramカウンタ出力最終結果

  * @return

  * /

  パブリックstatic int型のjiaogu(int型N、INTカウンタ){

  //このカウンタは、ここに割り当てることができないので、すべてのメソッド呼び出しが入って来、それはカウンタ値をリセットします後

  // int型のカウンタ= 1;

  IF(N == 1){

  1を返します。

  } そうしないと {

  //カウンタ+1

  カウンタ++;

  IF(N%2 == 0){

  N = N / 2。

  } そうしないと {

  N = N * 3 + 1。

  }

  System.out.println(「出力電流値は自然数:」+ N)。

  //再帰呼び出し

  jiaogu(N、カウンタ)。

  }

  カウンター返します。

  }

  パブリック静的無効メイン(文字列[] args){

  System.err.println( "階乗に行く:" + countNum(5));

  System.err.println( "再帰的な場合:" + duck_sale(2、2))。

  System.err.println( "角谷定理ケース:" + jiaogu(3、3));

  System.err.println( "******************** ****************バブルソート");

  INT [] ARR = {5、12、58、98、2、1、5、36、0}。

  //回アウターループ制御周期の数

  {(I ++; I <arr.length iは1 = INT)のために

  //ソート内部ループ制御回数毎の旅

  用(INT J = 0; J <arr.length - 私は、J ++){

  以下降順よりも//制御配列決定結果は、昇順がより大きい

  IF(ARR [J]> ARR [J + 1]){

  int型、T = ARR [J]。

  ARR [J] = ARR [J + 1]。

  ARR [J + 1] = T。

  }

  }

  }

  System.out.println(「昇順に出力配列:」)。

  {(I ++; I <arr.length iが0 = INT)のために

  System.out.println(ARR [I])。

  }

  System.err.println( "******************** ****************セットを注文しました");

  リスト一覧=新しいArrayListを();

  list.add(10)。

  list.add(40)。

  list.add(30)。

  list.add(20)。

  list.add(11)。

  //list.sort(Integer::compareTo);

  Collections.sort(リスト);

  System.err.println(リスト);

  }

  }

  見出し

おすすめ

転載: www.cnblogs.com/djw12333/p/12101683.html