java数组及其算法运用

1  数组的定义:

数组(Array)是相同数据类型的数据的有序集合。(关键字:1:相同数据类型;2:有序的集合)

  1.1数组的三个特点

   [1]数组长度是确定。数组一旦申请完空间,长度不能发生变化,用length属性访问(列如:arr.length)。

   [2]数组的元素都是同一数据类型。

   [3]数组是有序的。每个元素通过下标/索引标记,索引从0开始。

2    数组的遍历

1 数组的遍历算法

3   数组的常用算法

      3.1 插入算法

            一个数组有序,添加一个元素后,数组依然有序。

public class Test07{

public static void main(String[] args){

//一个有序的数组,向该数组中添加一个元素,数组依然有序。

int[] arr = {1,3,7,9,12,20,0};

int t = 0;

//【1】找位置

int loc = -1; //表示t应该添加到的位置

for(int i = 0;i

if(arr[i] >= t){

loc = i;

break;

}

}

System.out.println("loc = "+loc);

if(loc < 0){ //没找到合适的位置

arr[arr.length-1] = t;

}else{

//【2】依次后移

for(int j=arr.length-1;j>loc;j--){

arr[j] = arr[j-1];

}

//【3】添加插入的值

arr[loc] = t;

}

//验证

for(int i = 0;i

System.out.print(arr[i]+"\t");

}

}

}

3.2  删除算法

public class Test08{

public static void main(String[] args){

//删除算法

int[] arr = {1,3,7,9,12,20};

int t = 1;

//【1】找位置

int loc = -1;

for(int i=0;i

if(t == arr[i]){

loc = i;

break;

}

}

//【2】移动元素

if(loc < 0){

System.out.println(t+"在数组中不存在");

}else{

for(int j = loc;j

arr[j] = arr[j+1];

}

//【3】最后一个元素置0

arr[arr.length-1] = 0;

}

//验证

for(int i = 0;i

System.out.print(arr[i]+"\t");

}

}

}

4    冒泡排序算法

public class Test10{

public static void main(String[] args){

//对一个无序的数组进行排序

int[] arr = {10,5,3,4,2,9,7};

int tmp = 0;

for(int i=0;i

for(int j=0;j

if(arr[j]>arr[j+1]){

tmp = arr[j];

arr[j] = arr[j+1];

arr[j+1] = tmp;

}

}

}

for(int i=0;i

System.out.print(arr[i]+"\t");

}

}

}


你可能感兴趣的:(java数组及其算法运用)