Java算法求最大最小值,冒泡排序,斐波纳契数列一些经典算法<不断更新中>

清明在家,无聊,把一些经典的算法总结了一下.

一、求最大,最小值

Scanner input=new Scanner(System.in);
		int[] a={21,31,4,2,766,345,2,34};
		//这里防止数组中有负数,所以初始化的时候给的数组中的第一个数。
		int max=a[0];
		int min=a[0];
		for (int i = 0; i < a.length; i++) {
			if(a[i]>max)
				max=a[i];
			if(a[i]<min)
				min=a[i];
		}
		
		System.out.println("最大的数是:"+max);
		System.out.println("最小的值是:"+min);

二、1--100之间的质数(什么叫质数,就是只能被1和本身能除尽的数)

//因为1不是质数,所以排除在外
		for (int i = 2; i < 100; i++) {
			boolean a=true;
			for (int j = 2; j < i/2+1; j++) {
				if(i%j==0){
					a=false;
					break;
				}
			}
			if(a)
				System.out.print(i+"  ");
		}

三、斐波纳契数列(如:1,1,2,3,5,8,11。。。)

int a=1;
		int b=0;
		for (int i = 1; i <= 10; i++) {
			a=a+b;
			System.out.print(a+" ");
			b=a+b;
			System.out.print(b+" ");
		}

四、输入一个正整数,倒着打印出来(如:123456789,打印出来是:987654321)

Scanner input=new Scanner(System.in);
int a=input.nextInt();
		for (int i = 1; i < 999; i++) {
			if(a!=0){
			System.out.print(a%10+" ");
			a=a/10;
			}else{
				break;
			}
		}

五、冒泡排序

int score[] = { 167, 69, 75, 87, 89, 90, 99, 100 };
		// 最多做n-1趟排序
		for (int i = 0; i < score.length - 1; i++) { 
			// 对当前无序区间score[0......length-i-1]进行排序(j的范围很关键,这个范围是在逐步缩小的)
			for (int j = 0; j < score.length - i - 1; j++) { 
				// 把小的值交换到后面
				if (score[j] > score[j + 1]) { 
					int temp = score[j];
					score[j] = score[j + 1];
					score[j + 1] = temp;
				}
			}
		}
		System.out.print("最终排序结果:");
		for (int a = 0; a < score.length; a++) {
			System.out.print(score[a] + "\t");
		}



先写这么多,累啊,休息休息。

posted @ 2014-04-06 14:42  java_阿中  阅读(610)  评论(0编辑  收藏  举报