记录我昨天一个人在自习课上学到的东西;
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);
}
}
}
}