java数组的算法_Java数组的一些基本算法

数组的一些算法问题:

排序:(升序)

选择排序:

求每一轮的最小值;再输出

冒泡排序:

相邻的两个数相比较,把两个数相比较,第一个大于好面的就交换位置

shell排序:

插入排序:

查找:

二分法查找:

class ErFenFa

{

public static void main(String[] args)

{

int []arr={2,4,6,3,1,8,7,9};

System.out.println(binarySearch(arr,4));

}

static int binarySearch(int []arr,int key)

{

int low=0;

int high=arr.length-1;

while(high>=low)

{

int mid=(low+high)/2;//中间索引

int midval=arr[mid];

if(key>midval)

{

low=mid+1;

}

else if(key

{

high=mid-1;

}

else

{

return mid;

}

}

return -1;

}

}

求最值:

java.util.Arrays;

public static void sort(int []arr)

数组的拷贝:

System类:

import java.util.Arrays;

public class SuzhuDemo

{

public static void main(String[] args)

{

String []arr1={"A","B","C","D"};

String []arr2=new String[5];

System.out.println(Arrays.toString(arr2));

System.arraycopy(arr1,1,arr2,0,3);

System.out.println(Arrays.toString(arr2));

/*

arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。

参数:

src - 源数组。

srcPos - 源数组中的起始位置。

dest - 目标数组。

destPos - 目标数据中的起始位置。

length - 要复制的数组元素的数量。

*/

}

}

Java5新特性:

可变参数:

增强for循环:

class VarArgsDemo

{

public static void main(String[] args)

{

int []arr={1,2,3,4,5,6,7,8};

int ret=getSum(arr);

System.out.println(ret);

//foreach循环

for(int temp:arr)

{

System.out.println(temp);

}

}

/*

可变参数static int getSum(int ...arr)

*/

static int getSum(int []arr)

{

int sum=0;

for(int i=0;i

{

sum+=arr[i];

}

return sum;

}

/*

---------- 编译Java ----------

VarArgsDemo.java:23: 错误: 无法在VarArgsDemo中同时声明getSum(int...)和getSum(int[])

static int getSum(int...arr)

^

1 个错误

Output completed (0 sec consumed) - Normal Termination

static int getSum(int...arr)

{

return 0;

}

*/

}

面向过程:执行者

面向对象:指挥者

三大特征:封装,继承,多态

类和对象之间的关系:

什么是对象:可以把任何东西看成对象

对象:

状态:

功能、行为

描述对象:通过类来描述对象;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值