数组的一些算法问题:
 排序:(升序)
  选择排序:
    求每一轮的最小值;再输出
  冒泡排序:
    相邻的两个数相比较,把两个数相比较,第一个大于好面的就交换位置
  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数组的一些基本算法的更多相关文章

  1. java(数组及常用简单算法 )

    数组 数组:数组是存储同一种数据类型数据的集合容器. 数组的定义格式: 数据类型[]  变量名  =  new  数据类型[长度]; 数组的好处:对分配到数组对象中每一个数据都分配一个编号(索引值.角 ...

  2. [转载]Java数组扩容算法及Java对它的应用

    原文链接:http://www.cnblogs.com/gw811/archive/2012/10/07/2714252.html Java数组扩容的原理 1)Java数组对象的大小是固定不变的,数组 ...

  3. Java数组扩容算法及Java对它的应用

    1)Java数组对象的大小是固定不变的,数组对象是不可扩容的.利用数组复制方法可以变通的实现数组扩容.System.arraycopy()可以复制数组.Arrays.copyOf()可以简便的创建数组 ...

  4. Java 数组

    数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. Java语言中提供的数组是用来存储固定大小的同类型元素. 你可以声明一个数组变量,如numbers[100 ...

  5. Java中常用的查找算法——顺序查找和二分查找

    Java中常用的查找算法——顺序查找和二分查找 神话丿小王子的博客 一.顺序查找: a) 原理:顺序查找就是按顺序从头到尾依次往下查找,找到数据,则提前结束查找,找不到便一直查找下去,直到数据最后一位 ...

  6. Java 数组基础,java.util.Arrays

    定义数组 方式1(推荐,更能表明数组类型) 方式2(同C语言) 方式3定义时直接初始化 数组运用基础 数组长度 equals() 数组元素不为基本数据类型时 二维数组 二维数组基础 变长的二维数组 j ...

  7. Java学习之二分查找算法

    好久没写算法了.只记得递归方法..结果测试下爆栈了. 思路就是取范围的中间点,判断是不是要找的值,是就输出,不是就与范围的两个临界值比较大小,不断更新临界值直到找到为止,给定的集合一定是有序的. 自己 ...

  8. 如何用70行Java代码实现深度神经网络算法

    http://www.tuicool.com/articles/MfYjQfV 如何用70行Java代码实现深度神经网络算法 时间 2016-02-18 10:46:17  ITeye 原文  htt ...

  9. Java数组练习题小结

    //2015/07/07 //Java数组小小练习题 /* 3. 写一个函数,计算一个整数数组的平均值 4. 自定义一个整数数组a,读入一个整数n,如果n 在数组中存在,则输出n 的下标:如果不存在, ...

随机推荐

  1. 注释驱动的 Spring cache 缓存介绍

    概述 Spring 3.1 引入了激动人心的基于注释(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(例如 EHCache 或者 OSCache),而是一个对缓存使 ...

  2. eclipse中 报出The type javax.servlet.http.HttpServlet cannot be resolved. It is indirect错误

    在Myeclispe部署项目后 报错 The type javax.servlet.http.HttpServlet cannot be resolved. It is indirect错误 如果在M ...

  3. 作业总结(一):IE6下面的那些坑

    考完试就来实习的公司实习了,大概最近有两周时间就一直在做公司给新人布置的大作业.虽然只是很简单的一个小的项目,但却从其中总结到了不少有用的东西.计划将其发出来一系列文章,算是对这两周时间的总结.也算是 ...

  4. android 自定义View onMeasure中 super.onMeasure 和 setMeasuredDimension

    练习写一个自定义的view,代码是抄网上的,第一次写,没有问题,与网上的示例一样的效果, 第二次.第三次,都出现问题,但是解决了. 昨天进行第四次写再写,又出问题不一样的问题了. 首先是想加一个子包, ...

  5. InfoPath中用户数据类型结构解析

    由于缺少对“用户”数据类型结构的明确定义,在设计InfoPath表达式时往往会耗用大量时间尝试,而且不一定能得到期望结果.下面对用户数据类型的结构进行详细解析. >> 什么是用户数据类型 ...

  6. 对想进入Unity开发新人的一些建议

    提前声明:本文只是写给那些非职业游戏开发人士,只面向那些在校本科生,或已就业但无unity背景的同学们,当然是面对程序员方向的.本人刚工作也没多久,资历尚浅,之前在网上有一位同学让我谈谈一些想法,所以 ...

  7. ant 介绍 http://blog.csdn.net/sunjavaduke/archive/2007/03/08/1523819.aspx

    转自: 本内容包含了Ant的历史简要介绍,Ant的功能以及Ant框架的介绍,并对下载安装使用Ant进行了示例介绍,同时通过一个Java程序讲解了Ant的基本使用方法. 1.       Ant简介:这 ...

  8. 洛谷P3379 【模板】最近公共祖先(LCA)

    P3379 [模板]最近公共祖先(LCA) 152通过 532提交 题目提供者HansBug 标签 难度普及+/提高 提交  讨论  题解 最新讨论 为什么还是超时.... 倍增怎么70!!题解好像有 ...

  9. Mysql常见四种索引的使用

    提到MySQL优化,索引优化是必不可少的.其中一种优化方式 --索引优化,添加合适的索引能够让项目的并发能力和抗压能力得到明显的提升. 我们知道项目性能的瓶颈主要是在"查(select)&q ...

  10. 2016年Java服务器端开发面试总结

    因为一些个人原因,陆陆续续参加了一些校招补招.社招的笔试和面试(BAT),也包括一些国外公司(Spotify, Google, Ericsson),最后有幸被网易收入麾下,拿到了S.下面罗列一些我复习 ...