数组结构之数组

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

一、查找

(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 }
时间: 2024-10-11 15:00:31

数组结构之数组的相关文章

0033数组结构之数组

数组中只能存放同一种类型的数据 数组定义:1.只设定长度 2.不设定长度,但是直接给数组赋值 int[] arr = new int[10]; int[] scores = new int[]{100,99,98}; 1.  定义数组类Array 2.  向数组中添加元素,最后位置添加和指定位置 添加.起始位置添加 3.  查询数组中的元素和修改元素 先重写toString()方法,main方法中测试该方法 4.  数组中的包含.搜索和删除指定索引.删除数组第一个元素.删除数组最后一个元素.删除

【C语言】用结构体数组完成:有5个学生(包括学号,姓名,成绩),要求按照成绩高低输出学生信息

//用结构体数组完成:有5个学生(包括学号,姓名,成绩),要求按照成绩高低输出学生信息 #include <stdio.h> struct Stu { int num; char name[20]; int score; }; int main() { int i,j; struct Stu student[5]={{317,"han",89},{318,"hu",50},{319,"kang",84},{320,"li&q

NumPy-快速处理数据--ndarray对象--多维数组的存取、结构体数组存取、内存对齐、Numpy内存结构

本文摘自<用Python做科学计算>,版权归原作者所有. 上一篇讲到:NumPy-快速处理数据--ndarray对象--数组的创建和存取 接下来接着介绍多维数组的存取.结构体数组存取.内存对齐.Numpy内存结构 一.多维数组的存取 多维数组的存取和一维数组类似,因为多维数组有多个轴,因此它的下标需要用多个值来表示,NumPy采用组元(tuple)作为数组的下标.如二维数组需要(x, y)的元组标记一个数组元素:三维数组需要(x, y, z)的元组标记一个元素. 如下图所示,a为一个6x6的二

第五章:数组 结构体 和联合体

1.结构体 2.联合体 3.结构体和联合体的操作 4.非压缩数组 5.压缩数组 6.数组操作 7.数组foreache 循环 8.用于数组的特殊系统函数 结构体 1.结构体成员可以是任何数据类型 包括基本类型和用户自定义类型 2.结构体的声明 var/wire 都可以定义为结构体类型.当定义为结构体类型时,结构体中的成员都必须是四态类型,成员不能是wire类型. 3.结构体的初始化 用值列表方式初始化 '{} 4.结构体的赋值 5.压缩结构体 可以视为独立的变量,具体与向量类似的操作 6.非压缩

编程题:指针变量指向结构体数组。

编程题:指针变量指向结构体数组. #include<stdio.h> void main() { struct person {char name[20]; char sex; int age; float height; }per[3]={{"Li Ping",'M',20,175},{"Wang Ling",'F',19,162.5}, {"Zhao Hui",'M',20,178}}; struct person *p; for

编程题:结构体数组的引用。功能:输出结构体数组各元素的成员值

编程题:结构体数组的引用.功能:输出结构体数组各元素的成员值 #include<stdio.h> void main() { struct person { char name[20]; char sex; int age; float height; }per[3]={{"Li Ping",'M',20,175},{"Wang Ling",'F',19,162.5}, {"Zhao Hui",'M',20,178}}; int i;

C语言 结构体(嵌套结构体--结构体数组)

//结构体--嵌套结构体和结构体数组 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct _parent{ int num; char name[30]; //结构体内部定义结构体,如果不定义嵌套结构体变量,那么该嵌套结构体的属性则会被当作父结构体的属性 struct son{ int age; char sna

黑马程序员-----结构体数组

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ----- 第一讲  结构体数组 一.结构体数组的概念       数组的元素也可以是结构类型的.因此可以构成结构型数组.结构数组的每一个元素都是具有相同结构类型的下表结构变量.在实际应用中,经常用结构数组来表示具有相同数据结构的一个群体.如一个班的学生

结构体数组

结构体数组 指向结构体指针