Professional Documents
Culture Documents
Giải thuật Đệ quy
Giải thuật Đệ quy
import java.util.Scanner;
public class doThoiGianGiaiThua{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("nhap n vao");
long n = sc.nextLong();
final long startTime = System.nanoTime();
long a =giaiThua(n);
System.out.println(a);
final long endTime = System.nanoTime();
System.out.println(endTime - startTime);
}
public static long giaiThua (long n){
if (n==0){
return 1;
}
else{
long result = n * giaiThua(n-1);
return result;
}
}
}
Bài 2. Giải thuật Euclide
…
Code with Java Đồ thị
public class findMax {
public static void main(String[] args) {
int [] A ={100,8,17,789,456,13,21,7,34,90,44,};
final long startTime = System.nanoTime();
int a =Max(A,A.length);
final long endTime = System.nanoTime();
System.out.println("max: "+ a );
System.out.println("Time :" +(endTime-startTime));
System.out.println("n:" + A.length);
}
public static int Max(int [] A, int n ){
if (n == 0)
return -1;
if (n == 1)
return A[0];
else{
if (A[n - 1] > Max(A, n - 1))
return A[n - 1];
else return Max(A, n - 1);
}
}
}
Bài 4. Giải thuật tìm số Fibonacci thứ n
chuyen(n, A, B, C)
{ if n = 1 chuyen1tang(A, B);
else (chuyen(n-1, A, C, B);
chuyen1tang(A, B);
chuyen(n-1, C, B, A);}
}
Code with Java Đồ thị
package doTimeThuatToan;
public class findHN {
public static void main(String[] args) {
int disk = 4;
final long startTime = System.nanoTime();
thapHN(disk, 'A', 'B', 'C’);
final long endTime = System.nanoTime();
System.out.println("time :" + (endTime-startTime));
}
public static void thapHN(int a , char start, char mid, char end){
if(a==1){
System.out.println("Disk 1 from " + start + " to " + end);
}
else{
thapHN(a-1, start, end, mid);
System.out.println("Disk " + a + " from " + start + " to " + end);
thapHN(a - 1, mid, start, end);
}
}
}
Tìm hiểu thêm về đệ quy
Ưu điểm: Thực hiện lớn số lượng thao tác tính thông qua 1 đoạn
chương trình ngắn gọn
Nhược điểm: Tốn nhiều dung lượng do thực hiện nhiều phép tính
Không tối ưu về mặt thời gian
Thank you!