黑马程序员_数组及其排序查找操作

来源:互联网 发布:北京哪有淘宝培训班 编辑:程序博客网 时间:2024/05/16 15:24
 

---------------------- <a href="http://edu.csdn.net/heima" target="blank">android培训</a>、<a href="http://edu.csdn.net/heima" target="blank">java培训</a>、期待与您交流! ----------------------

数组:
int[] x=new int[3];//x为数组类型

栈内存:数据使用完毕,自动释放
       int之类的数据
堆内存:new出来的实体
     内存地址值,默认初始化值0,垃圾回收机制
-------------------------------------------------
数组:
   ArrayIndexOutOfBoundsException: 3:操作数组时,访问了数组中不存在的角标。
   NullPointerException:空指针异常,当引用没有任何指向值为null的情况,该引用还在用于操作实体。
获取数组中的元素,遍历。

数组中有一个属性length。获得数组元素个数
方式:数组名.length

数组应用:获取最值
  1,定义一个变量,初始化为数组中任意元素
  2,循环语句遍历。
  3,遍历中判断,若元素比变量阿訇元素打,就赋值给改变量

可以将临时变量初始化为0,应用角标。
int max = 0; arr[max];
----------------------------------------------------
排序:选择和冒泡
选择排序:
for(int x=0;x<arr.length-1;x++)
{
      for(int y=x+1;y<arr.length;y++)
       {
  if(arr[x]>arr[y])
  {
   int temp=arr[x];
   arr[x]=arr[y];
    arr[y]=temp;
   }
  }
 }
冒泡排序:
for(int x=0;x<arr.length-1;x++)
{
 for(int y=0;y<arr.length-x-1;y++)//-x,让每一次比较的元素减少。-1:避免角标越界。

 {
  if(arr[y]>arr[y+1])
  {
   int temp=arr[x];
   arr[y]=arr[y+1];
   arr[y+1]=temp;
   }
  }
 }
希尔排序,最快。
Arrys.sort(arr);java中已经定义好的排序方式
-----------------------------------------------------------------
查找:折半(必须是有序数组)
插入操作:插入到折半查找结果中min位置


----------------------
进制转换:
10转16:总共循环8次0000-0000 0000-0000 0000-0000 0000-0011
public static void toHex(int num)
{
      StringBuffer sb=new StringBuffer();//存储对象
        for(int x=0;x<8;x++)
 {
     int temp = num & 15;
            if(temp>9)
                //System.out.println((char)(temp-10+'A'));
  sb.append((char)(temp-10+'A'));//append添加数据
     else
  //System.out.println(temp);
  sb.append(temp);//append添加数据
     num=num>>>4;
 }
 System.out.println(sb);
 System.out.println(sb.reverse());//sb.reverse结果反转
}

---------------------------
二维数组:
int[][]arr=new int[3][];
System.out.println(arr);//输出arr数组的内存地址值
System.out.println(arr[0]);//输出null
arr[0]=new int[3];
arr[1]=new int[1];
arr[2]=new int[2];
System.out.println(arr[0].length);//打印二位数组中第一个一位数组长度

-----------------------------------
int []x,y[];//x一维,y二维

------------------------------------

---------------------- <a href="http://edu.csdn.net/heima" target="blank">android培训</a>、<a href="http://edu.csdn.net/heima" target="blank">java培训</a>、期待与您交流! ----------------------

详细请查看:<a href="http://edu.csdn.net/heima" target="blank">http://edu.csdn.net/heima</a>