java冒泡排序和斐波那契数列

记录我昨天一个人在自习课上学到的东西;
ps:本人有一点的java基础

斐波那契数列

斐波那契数列:1 1 2 3 5 8 13
规律: arr[x]=arr[x-2]+arr[x-1]
x = 0,的时候,arr[0]=1
x = 1, 的时候,arr[1]= 1
可见, 循环从x=2开始
对此我也是一知半解,直接贴代码:

public class eaample_1 {
	public static void main(String[] args)
	{
		int[] arr=new int[20];
		arr[0]=1;
		arr[1]=1;
		for(int i=2;i<arr.length;i++){
			 arr[i]=arr[i-2]+arr[i-1];		
		}			
		System.out.println(arr[19]);
	}	
}

写的比较一般

再写一个java冒泡排序的代码

当有一个数组int[] arr={5,4,8,9,6,3,2,17},要以从小到大来进行输出

1、创建一个数组遍历的方法,方便输出数组。

	public static void paiXu(int[] arr)
	{
		  for(int x=0;x<arr.length;x++)
		  {
			  System.out.print(arr[x]);
		  }
		  System.out.print("\n");
		 
	}

2、比较数组arr[0]与arr[1]的大小,如果arr[0]>arr[1],则利用中间变量max来让它们的值互换。

max=arr[1];
arr[1]=arr[0];
arr[0]=max;

用变量来代替

max=arr[k+1];
arr[k+1]=arr[k];
arr[k]=max;

所以只要想办法让双重循环如下图那样输出就哭达到冒泡的结果
AAAAA
AAAA
AAA
AA
A

因为最大值在第一次外循环就已经被移到数组的最后一个数了
所以依次输出就行了
3、建立双循环,

public static void maoPao(int[] arr){
		for(int j=0;j<arr.length-1;j++){
			for(int k=0;k<arr.length-j-1;k++){
				if(arr[k]>arr[k+1]){
					int max=arr[k+1];
					arr[k+1]=arr[k];
					arr[k]=max;
					
				}
				
				paiXu(arr);//调用数组遍历输出的方法
			}
			
		}
	}

总结:个人的表达能力不太好,只能这样了,以后或许会更改,下面是全代码;

package example_0;
//冒泡排序
public class example_0_bubbling {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		int[] arr={9,8,7,1};
		
		maoPao(arr);
		System.out.println("你好");
	}
	
	public static void paiXu(int[] arr)
	{
		  for(int x=0;x<arr.length;x++)
		  {
			  System.out.print(arr[x]);
		  }
		  System.out.print("\n");
		 
	}
	public static void maoPao(int[] arr){
		for(int j=0;j<arr.length-1;j++){
			for(int k=0;k<arr.length-j-1;k++){
				if(arr[k]>arr[k+1]){
					int max=arr[k+1];
					arr[k+1]=arr[k];
					arr[k]=max;
					
				}
				
				paiXu(arr);
			}
			
		}
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值