いくつかの必ずできる基礎アルゴリズムの問題(1)
今日は基礎的なアルゴリズムを復習しました。簡単にフィボナッチの数列を記録します。
高速秩序化の簡単な紹介アルゴリズムの思想:分割の思想に基づいて、発泡体秩序化の改良型である。まず、配列の中から基準点を選択します。(基準点の選択は、迅速な順序付けの効率に影響する可能性があります。後に選択方法を説明します。)そして、それぞれの配列の両端から配列をスキャンして、二つの標識を設定します。(lowは開始位置を指し、highは末尾を指す)まず後半から、その基準点の値より小さい要素があると発見されたら、lowとhigh位置の値を交換して、前半から秒をスキャンします。基準点より大きい元素があることを発見したら、lowとhigh位置の値を交換し、low==highまで往復し、基準点の値をhighというビットに戻します。を選択します。順序付けは一回で終わります。これからは再帰的な方式で前半と後半の部分を並べ替えます。現在の半分と後半の部分が整然としている時には、この配列は自然に整然としています。
/*
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