java二维数组随机取数,Java数组排序基础算法,二维数组,排序时间计算,随机数产生...

import java.util.Arrays; //包含Arrays

import java.util.Random;

public class HelloWorld {

public static void main(String[] args){

//Scanner s = new Scanner(System.in);

//System.out.println("请输入一个数字");

//int num = s.nextInt();

//打印数组

int []a = {10,14,2,3,9,87} ;

sort(a);

System.out.println(Arrays.toString(a));

a = insertValue(a,15);

System.out.println(Arrays.toString(a));

int []b = {2,34,87,1,2,77,8,56,2} ;

insertsort(b);

System.out.println(Arrays.toString(b)) ;

/

//数组中自带的API排序接口

int []c = {11,20,8,48,45,23,14} ;

Arrays.sort(c);//调用sort方法,jdk自带,非常高效的算法

System.out.println(Arrays.toString(c)) ;

int []d = new int[1000000];

for(int i = 0 ; i < d.length ;i++){

Random r = new Random();

d[i] = r.nextInt();//获取一个随机的整数

}

long start = System.currentTimeMillis() ;//获取当前的时间到1970开始时间相差的毫秒

Arrays.sort(d); //对随机产生数组的元素进行排序,性能最好,运行最快

//insertsort(d);

//sort(d)

long end = System.currentTimeMillis();

System.out.println(end-start);//计算当前排序花费的时间

//二维数组

Two_array();

}

//选择排序算法

//跟三个数交换是同样的原理

public static void sort(int []a){

for(int i = 0 ; i < a.length - 1 ; i++){

for(int j = i + 1 ; j < a.length ; j++){

if(a[i] > a[j]){

int temp = a[i] ;

a[i] = a[j] ;

a[j] = temp ;

}

}

}

}

/*

* a[0]和a[1]比较如果大则交换---->a[0]和a[1]中大的放入了a[1]

* a[1]和a[2]比较如果大则交换---->a[0],a[1],[2]中大的放入了a[2]

* a[2]和a[3]比较如果大则交换

* .....

* a[4]和a[5]比较如果大则交换---->最大的放入了a[5] ;

* -------------------------------第一轮

* a[0]和a[1],a[1]和a[2],a[2]和a[3],a[3]和a[4]------第二轮

*

* ...最后一轮a[0]和a[1]比较

*/

//冒泡排序算法

public static void sort1(int []a){

for(int i = 0 ; i < a.length-1 ; i++){

for(int j = 0 ; j < a.length - 1 - i ; j++){

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

int temp = a[j];

a[j] = a[j+1];

a[j+1] = temp ;

}

}

}

}

//插入一个数以后自动排序--->一个已经排好序的数组,插入一个新元素

public static int[] insertValue(int []a , int value){

//从最后一个元素开始和value进行比较,如果比value大,这些元素都后移

//一直到value大于数组的某个元素,那么说明value就应该放在这个元素之后

a = Arrays.copyOf(a, a.length+1);

//因为前面扩容了,最后一个元素为空,要最后一个元素的前一个才是

for(int i = a.length - 2 ; i >= 0 ; i--){

if(value < a[i])

a[i+1] = a[i] ; //后移动

else

break ;

a[i+1] = value ;

}

return a ;

}

/**

* a[0]作为基本量,拿出a[1]进行插入工作 a[0]和a[1]已经排好序了

* a[0],a[1]作为基本量 拿出a[2]进行插入工作 a[0],a[1],a[2]已经排好序了

* .....依次类推

*/

//插入排序

public static void insertsort(int []a){

int t , j;

for(int i = 1 ; i < a.length ; i++){

t = a[i];

for(j = i-1 ; j >= 0 && t < a[j]; j--){

a[j+1] = a[j] ;

}

}

}

public static void Two_array()

{

int [][] a = {

{1,2,3,4,5},

{6,7,8,9,10},

{5,9,7,8,3},

};

int [][]b = new int[][]{

{1,2,3},{4,5,6}};

System.out.println(a.length);

/*

* a中有三个一维数组

* 第一个a[0]

* ......a[1]

* */

//二维数组中第二个一维数组的元素的长度

System.out.println(a[1].length);

//遍历第二个一维数组的长度

for(int i = 0 ; i < a[1].length ; i++){

System.out.print(a[1][i] + " ");

}

System.out.println();

/*遍历二维数组中所有的元素*/

for(int i = 0 ; i < a.length ;i++){

for(int j = 0 ; j < a[1].length ; j++){

System.out.print(a[i][j]+" ") ;

}

System.out.println();

}

}

}

本文同步分享在 博客“Engineer-Bruce_Yang”(CSDN)。

如有侵权,请联系 support@oschina.cn 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值