1、基本操作
public class array_1 {
private long[] arr;//数组
private int elems;//数组中有效数据大小
//默认构造函数
public array_1(){
arr=new long[50];
}
public array_1(int max){
arr=new long[max];
}
//插入数据
public void insert(long value){
arr[elems]=value;
elems++;
}
//显示数据
public void display(){
for(int i=0;i<elems;i++){
System.out.print(arr[i]+" ");
}
}
//查找数据
public int find(long searchKey){
int i;
for(i=0;i<elems;i++){
if(arr[i]==searchKey){
break;
}
}
if(i==elems){
return -1;
}else{
return i;
}
}
//删除数据
public void delete(long deleteKey){
int index=find(deleteKey);
if(index==-1){
System.out.println("查到不到该数据,删除失败");
}else{
for(int i=index;i<elems;i++){
arr[i]=arr[i+1];
}
}
}
//修改数据
public void update(long oldKey,long newKey){
int index=find(oldKey);
if(index==-1){
System.out.println("查到不到该数据,修改失败");
}else{
arr[index]=newKey;
}
}
}
2、排序
public static void main(String[] args) {
int[] arr={4,5,6,1,2,3,7,9,8};
insertSort(arr);
display(arr);
}
//冒泡排序
public static void bubbleSort(int[] arr){
for(int i=0;i<arr.length-1;i++){
for(int j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
arr[j+1]=arr[j]+arr[j+1]-(arr[j]=arr[j+1]);
}
}
}
}
//选择排序1
public static void selectSort(int[] arr){
for(int i=0;i<arr.length-1;i++){
for(int j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
arr[i]=arr[i]+arr[j]-(arr[j]=arr[i]);
}
}
}
}
//选择排序2
public static void selectSort2(int[] arr){
int min=0;
int tmp=0;
for(int i=0;i<arr.length-1;i++){
min=i;
for(int j=i+1;j<arr.length;j++){
if(arr[min]>arr[j]){
min=j;
}
}
tmp=arr[i];
arr[i]=arr[min];
arr[min]=tmp;
}
}
//插入排序:1.选取数据2.比较右移3.插入数据
public static void insertSort(int[] arr){
int select=0;
for(int i=1;i<arr.length;i++){
select=arr[i];
int j=0;
for(j=i;j>0&&arr[j-1]>=select;j--){//大小大,变成小大大
//往前比较,遇到比select大的值,插入到其后
arr[j]=arr[j-1];//以前的值右移,空出位置给select
}
arr[j]=select;
}
}
public static void display(int[] arr){
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
}
}