码迷,mamicode.com
首页 > 编程语言 > 详细

数组结构之数组

时间:2016-04-03 10:30:13      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:

数据结构之数组的运用,无非是增删查操作,就有序数组和无序数组进行这三种操作:

一、查找

(1)无序数组查找特定元素,线性查找:

 1 public static void unSortSearchKey(int arr[], int key) {
 2         for (int i = 0; i < arr.length; i++) {
 3             if(arr[i]==key){
 4                 System.out.println(key+"在无序数组中索引为的"+i+"个位置");
 5             }
 6             else {
 7                 continue;
 8             }
 9             if(i==arr.length){
10                 System.out.println(key+"不存在与无序数组中");
11             }
12         }
13 
14     }

(2)有序数组查找特定元素,可以采用线性查找或者是二分查找(BinarySearch),这里我们使用二分查找 数组为升序排列或降序排列,使用二分查找代码代码有些不同,坑爹呀

 1 public static int sortSearchKey(int[] arrSort, int key) {
 2         
 3         int max,min,mid;  
 4           min = 0;  
 5           max = arrSort.length-1;  
 6           while(min<=max)  
 7           {  
 8            mid = (max+min)>>1;  
 9            if(key>arrSort[mid])  
10               max = mid - 1; 
11            else if(key<arrSort[mid])  
12             min = mid + 1; 
13            else  
14             return mid;  
15           }  
16           return -min-1; 
17     }

二、插入

(1)向有序数组中插入元素,并返回插入元素后的数组:

 1 public static int[] insertKey(int[] arrSort, int key_insert) {
 2 //        int left=0;
 3 //        int right=arrSort.length-1;
 4 //        int half=(left+right)/2;
 5         int position=sortSearchKey(arrSort, key_insert);
 6         if(position>=0){
 7             arrSort=Arrays.copyOf(arrSort, arrSort.length+1);
 8             for(int x=arrSort.length-1;x>position;x--){
 9                 arrSort[x]=arrSort[x-1];
10             }
11             arrSort[position]=key_insert;
12 //            displayArr(arrSort);
13         }
14         else{
15             arrSort=Arrays.copyOf(arrSort, arrSort.length+1);
16             for(int x=arrSort.length-1;x>=-(position+1);x--){
17                 arrSort[x]=arrSort[x-1];
18             }
19             arrSort[-(position+1)]=key_insert;
20 //            displaySortArr(arrSort);
21         }
22         return arrSort;
23     }

(2)无序数组中插入元素(数组扩容,插入到数组的最后即可)

1 public static void insertKey_2(int[] arr, int key_insert) {
2         Arrays.copyOf(arr, arr.length+1);
3         arr[arr.length-1]=key_insert;
4         displayArr(arr);
5     }

三、删除元素

 1     public  static void delete_1(int arr[],int delSortIndexKey) {
 2         if(delSortIndexKey>=arr.length){
 3             return;
 4         }
 5         for(int i=delSortIndexKey;i<arr.length-1;i++){
 6             arr[i]=arr[i+1];
 7         }
 8         arr[arr.length-1]=0;
 9         displaySortArr(arr);
10 }

 

数组结构之数组

标签:

原文地址:http://www.cnblogs.com/ysw-go/p/5349156.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!