黑马程序员技术交流社区
标题:
求算法?
[打印本页]
作者:
马清泽
时间:
2012-12-6 09:32
标题:
求算法?
本帖最后由 马清泽 于 2012-12-6 11:19 编辑
算法有很多?你如递归等?这个具体是什么原理?怎么应用?
作者:
孙万利
时间:
2012-12-6 09:44
递归算法:递归算法就是一个函数通过
不断对自己的调用
而求得最终结果的一种思维(简单的说就是自己调用自己;)
下面代码是一段实例
(看红色字段即是递归算法)
package com.itheima;
import java.io.File;
public class ShowDir {
/**
* @param args
*/
public static void main(String[] args) {
File dir = new File("d:\\jdk1.6.0_37");
show_Dir(dir,0);
}
public static String getLevel(int level)
{
StringBuilder sb = new StringBuilder();
sb.append("|--");
for(int x=0;x<level;x++)
{
sb.insert(0, " ");
}
return sb.toString();
}
public static void
show_Dir(File dir,int level)
{
System.out.println(getLevel(level)+dir.getName());
level++;
File[] files = dir.listFiles();
for(int x=0;x<files.length;x++)
{
if(files[x].isDirectory())
{
show_Dir(files[x],level);
}else{
System.out.println(getLevel(level)+files[x]);
}
}
}
}
作者:
胡高德
时间:
2012-12-6 10:54
/*
冒泡排序
相邻元素进行比较,最值出现在右边。
*/
class Demo2
{
//冒泡排序
public static void bubbleSort(int[] arr){
for(int k=0;k<arr.length-1;k++){ //控制比较多少轮
for(int i=0;i<arr.length-1-k;i++){ //为什么减1,因为i位置元素与i+1位置元素比较
//-k操作是为了将右边比较后出现的最值刨掉,
//也就是最右边出现的最值,不在比较
if(arr[i]>arr[i+1]){
int tmp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=tmp;
}
}
}
}
public static void showArray(int[] arr){
System.out.print("[");
for(int i=0;i<arr.length;i++){
if(i==arr.length-1){
System.out.print(arr[i]);
}else{
System.out.print(arr[i]+",");
}
}
System.out.println("]");
}
public static void main(String[] args)
{
int[] arr={1,5,2,8,6,7};
showArray(arr);
bubbleSort(arr);
showArray(arr);
作者:
赵保磊
时间:
2012-12-6 11:33
递归就是在本函数内调用本函数: 下面是运用递归计算 n+(n-1)+(n-2)+......1的一个程序
在主函数中调用该静态方法,传进一个参数即可.
public static int addSum(int num)
{
if(num==1)
return 1;
else
return num+addSum(num-1);
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2