数组分享

数组的实现和利用非常重要
数组队列的实现思路
1.对象名中存储的是什么内容?
对象名中存储的是地址。
int [] array = new int[0];
array = new int[1];
GC(垃圾回收机制),自动销毁没有使用的对象,释放内存空间。(析构函数)
package cn.netjava.array;

import java.util.Random;

//一维数组的使用

public class Array {

public static void main(String[] args) {
Array ao = new Array();//实例化Array
int [] array = ao.createArray(10);//创建数组
ao.printArray(array);//数组的输出方法
System.out.println("\n");
//数组排序的方法定义
ao.xuanze(array);//选择排序
ao.charu(array);//插入排序
ao.shell(array);//希尔排序

ao.printArray(array);
System.out.println("\n");
}


//实例化数组
public int[] createArray(int size) {
int[] array = new int[size];
//实例化随机数的
Random random = new Random();

// 遍历数组,给数组的每一个下标位置附上值。
for (int i = 0; i < array.length; i++) {
array[i] = random.nextInt(100);// 给数组赋随机值
}
return array;
}
//选择排序的算法
public static int[] xuanze (int [] array){
for (int i=0; i<array.length;i++){
int lowerIndex=i;
//找到最小索引
for(int j=i+1;j<array.length;j++){
if (array[j]<array[lowerIndex]){
lowerIndex=j;

}
}
int temp=array[i];
array[i]=array[lowerIndex];
array[lowerIndex]=temp;
//输出 有问题的地方 输出可以 但是是混乱的
for(int n=0;n<array.length;n++){
int value=array[n];
System.out.print(value+"\t");
System.out.println();
}
}
return array;
}
//shell 的算法
public static int[] shell(int []array){
//先进行分组
for(int increment =array.length/2;increment>0;increment/=2){
//组内排序
for (int i= increment; i<array.length; i++){
int temp=array[i];
int j=0;
for ( j=i; j>=increment; j-=increment){
if (temp<array[j-increment]){
array[j]=array[j-increment];
}
else{
break;
}
}
array[j]=temp;
}
}
return array;
}
// 打印数组的方法
public void printArray(int[] array) {
// 遍历数组,输出每一个下标位置的元素
for (int i = 0; i < array.length; i++) {
System.out.print(array[i]+"\t");//输出信息
}
}
//插入排序的实现方法
public static int[] charu(int[] array){
for(int i=0; i<array.length;i++){
for(int j=i;j>0;j--){
if(array[i]<array[i-1]){
int temp=array[i];
array[i]=array[i-1];
array[i-1]=array[i];
}
}
}
return array;
}
//打印数组的方法
public void printArray1(int[] array) {
// 遍历数组,输出每一个下标位置的元素
for (int i = 0; i < array.length; i++) {
System.out.print(array[i]+"\t");//输出信息
}
}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值