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<midval)
{
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<arr.length;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;
}
*/
}
面向过程:执行者
面向对象:指挥者
三大特征:封装,继承,多态
类和对象之间的关系:
什么是对象:可以把任何东西看成对象
对象:
状态:
功能、行为
描述对象:通过类来描述对象;
Java数组的一些基本算法的更多相关文章
- java(数组及常用简单算法 )
数组 数组:数组是存储同一种数据类型数据的集合容器. 数组的定义格式: 数据类型[] 变量名 = new 数据类型[长度]; 数组的好处:对分配到数组对象中每一个数据都分配一个编号(索引值.角 ...
- [转载]Java数组扩容算法及Java对它的应用
原文链接:http://www.cnblogs.com/gw811/archive/2012/10/07/2714252.html Java数组扩容的原理 1)Java数组对象的大小是固定不变的,数组 ...
- Java数组扩容算法及Java对它的应用
1)Java数组对象的大小是固定不变的,数组对象是不可扩容的.利用数组复制方法可以变通的实现数组扩容.System.arraycopy()可以复制数组.Arrays.copyOf()可以简便的创建数组 ...
- Java 数组
数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. Java语言中提供的数组是用来存储固定大小的同类型元素. 你可以声明一个数组变量,如numbers[100 ...
- Java中常用的查找算法——顺序查找和二分查找
Java中常用的查找算法——顺序查找和二分查找 神话丿小王子的博客 一.顺序查找: a) 原理:顺序查找就是按顺序从头到尾依次往下查找,找到数据,则提前结束查找,找不到便一直查找下去,直到数据最后一位 ...
- Java 数组基础,java.util.Arrays
定义数组 方式1(推荐,更能表明数组类型) 方式2(同C语言) 方式3定义时直接初始化 数组运用基础 数组长度 equals() 数组元素不为基本数据类型时 二维数组 二维数组基础 变长的二维数组 j ...
- Java学习之二分查找算法
好久没写算法了.只记得递归方法..结果测试下爆栈了. 思路就是取范围的中间点,判断是不是要找的值,是就输出,不是就与范围的两个临界值比较大小,不断更新临界值直到找到为止,给定的集合一定是有序的. 自己 ...
- 如何用70行Java代码实现深度神经网络算法
http://www.tuicool.com/articles/MfYjQfV 如何用70行Java代码实现深度神经网络算法 时间 2016-02-18 10:46:17 ITeye 原文 htt ...
- Java数组练习题小结
//2015/07/07 //Java数组小小练习题 /* 3. 写一个函数,计算一个整数数组的平均值 4. 自定义一个整数数组a,读入一个整数n,如果n 在数组中存在,则输出n 的下标:如果不存在, ...
随机推荐
- ln命令小陷阱
一个文件夹下面的文件结构是 -dir1 -assetsdir -subdir1 -subdir2 这个时候如果我想在subdir1和subdir2下面分别创建assetsdir的链接文件夹的话,应该怎 ...
- Python六大开源框架对比:Web2py略胜一筹
Python是一门动态.面向对象语言.其最初就是作为一门面向对象语言设计的,并且在后期又加入了一些更高级的特性.除了语言本身的设计目的之外,Python标准库也是值得大家称赞的,Python甚至还自带 ...
- vrrp
https://zhidao.baidu.com/question/1498182981731748379.html
- 如何将Debug文件夹下的资源打包成一个EXE文件直接执行
前言:前段时间写了个小程序,想分享给好友看看,可所以资源都放在Debug文件夹下,整个文件夹发给人家这也太……,为了显得稍微专业一点,想把它们打包一个EXE文件执行,因为我见到到这样的程序,直接一个E ...
- 评论alpha版本发布
讲解顺序: 1. 新蜂:俄罗斯方块 俄罗斯方块已经完成了核心的游戏部分,可以流畅的进行游戏,经验值功能也已经完成,目前进度很好:不足之处主要有:后续的显示内容还没完成,所以界面空出来很多板块,alp ...
- (Array,位操作)137. Single Number II
Given an array of integers, every element appears three times except for one. Find that single one. ...
- JAVA编程规范(下)
JAVA编程规范(下) 2016-03-27 6. 代码的格式化 6.1 对代码进行格式化时,要达到的目的 1. 通过代码分割成功能块和便于理解的代码段,使代码更容易阅读和理解: 2. ...
- Esfog_UnityShader教程_前言
很多人在学习Unity的时候对Shader都是一知半解,作为刚入职半年的新人接触Shader的时间也并不长,正因为是新人才能体会到学习Shader时候所遇到的困难和迷茫,无奈于资料不好找,网上难得的几 ...
- delphi.指针.PChar
此文是delphi.指针.应用姊妹篇,想细化一下PChar应用,所以有了此文. 注意: 1:此文讲的是PChar与字符串相关操作,其它方法暂不多讲. 2:由于D分开Ansi/Unicode的两种完全不 ...
- controller共享数据
刚开始使用angularjs,能感受到他的强大,也在学习的途中遇到一些问题 一般我们在angularjs中共享数据使用DI的方法,具体代码如下: <script> angular.modu ...