いくつかの必ずできる基礎アルゴリズムの問題(1)


今日は基礎的なアルゴリズムを復習しました。簡単にフィボナッチの数列を記録します。
/*
Fibonacci         :1、1、2、3、5、8、13、21、34、……
    ,                  :F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)
 */
public class Fibonaccitest {
    public static void main(String[] args) {
        System.out.println(Fibonacci(5));
    }

    static int Fibonacci(int number){
        if (number<=0){
            return 0;
        }
        if (number==1||number==2){
            return 1;
        }
        int first=1,second=1,third=0;
        for (int i=3;i<=number;i++){
            third = first + second;
            first=second;
            second=third;
        }
        return third;
    }

}
二十進数から二進数へ
/**
 *        
 */
public class TestConvert {
    public static void main(String[] args) {
        //         
        int n=13;
        //           
        int t=n;//   
        String str="";
        do {
            //  2   
            int mod = t % 2;
            //    
            System.out.println(mod);
            str = mod + str;
            //  2   
            int result = t / 2;
            //        
            t = result;
            t = t / 2;
        }while (t>0);// >0
        //    
        System.out.print(n+"--->");
        }
}
三泡の並べ替え
import java.util.Scanner;

public class Sort {

    public static void sort(){
        Scanner input= new Scanner(System.in);
        int sort[] =new int[10];
        int temp;
        System.out.print("   10      :");
        for (int i=0;i
四快速並べ替え
高速秩序化の簡単な紹介アルゴリズムの思想:分割の思想に基づいて、発泡体秩序化の改良型である。まず、配列の中から基準点を選択します。(基準点の選択は、迅速な順序付けの効率に影響する可能性があります。後に選択方法を説明します。)そして、それぞれの配列の両端から配列をスキャンして、二つの標識を設定します。(lowは開始位置を指し、highは末尾を指す)まず後半から、その基準点の値より小さい要素があると発見されたら、lowとhigh位置の値を交換して、前半から秒をスキャンします。基準点より大きい元素があることを発見したら、lowとhigh位置の値を交換し、low==highまで往復し、基準点の値をhighというビットに戻します。を選択します。順序付けは一回で終わります。これからは再帰的な方式で前半と後半の部分を並べ替えます。現在の半分と後半の部分が整然としている時には、この配列は自然に整然としています。

import java.util.Arrays;

public class TestQuickSort {
    public static void main(String[] args) {
        //      
        int arr[] = {72,6,57,88,60,42,83,73,48,85};
        //      
        System.out.println(Arrays.toString(arr));
        //    
        quickSort(arr);
        partition(arr,0,arr.length-1);
        //      
        System.out.println(Arrays.toString(arr));

    }
    private static int partition(int[] arr,int low,int high){
        //     i    j
        int i=low;
        int j=high;
        //          。
        int x=arr[low];
        //          
        while (i=x && i