博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java开始到熟悉62
阅读量:6632 次
发布时间:2019-06-25

本文共 2764 字,大约阅读时间需要 9 分钟。

(说明:昨天网络出现了问题导致昨天的没有按时上传,这篇算是昨天的,今天晚上照常上传今天的内容)   

  本次主题:数组拷贝、排序、二分法

1、数组拷贝

a.java.lang中System 类包含一些有用的类字段和方法。它不能被实例化。

System 类提供的设施中,有标准输入、标准输出和错误输出流;对外部定义的属性和环境变量的访问;加载文件和库的方法;还有快速复制数组的一部分的实用方法。

public static void arraycopy( src, int srcPos,  dest,  int destPos,                 int length)
从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。从
src 引用的源数组到
dest 引用的目标数组,数组组件的一个子序列被复制下来。被复制的组件的编号等于
length 参数。源数组中位置在
srcPos
srcPos+length-1 之间的组件被分别复制到目标数组中的
destPos
destPos+length-1 位置。

b.java.util中的Arrays类,此类包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂。

toString

public static  toString(short[] a)
返回指定数组内容的字符串表示形式。字符串表示形式由数组的元素列表组成,括在方括号(
"[]")中。相邻元素用字符
", "(逗号加空格)分隔。这些元素通过
String.valueOf(short) 转换为字符串。如果
a
null,则返回
"null"

c.打印数组

1 package array; 2  3 import java.util.Arrays; 4  5 public class array { 6     public static void main(String[] args) 7     { 8         int[] a={
1,2,43,12,5,65,23}; 9 System.out.println(a);10 System.out.println(Arrays.toString(a));11 Arrays.sort(a);12 System.out.println(Arrays.toString(a));13 }14 }

运行结果:

[I@19836ed
[1, 2, 43, 12, 5, 65, 23]
[1, 2, 5, 12, 23, 43, 65]

直接打印a结果可能是地址,[I代表是一个int数组,后面跟的是数组所在的地址。

d.对象也可以排序,不过要自己定义compareTo方法,这个放到后面容器的地方记录。

2,数组排序

冒泡排序

1 package array; 2  3 import java.util.Arrays; 4  5 public class maopao { 6     public static void main(String[] args) 7     { 8         int[] a={
1,13,4,2,5,23,6,9,3}; 9 sort(a);10 System.out.println(Arrays.toString(a));11 }12 public static void sort(int[] a)13 {14 int i,j;15 int temp=0;16 for(i=0;i
a[j+1])21 {22 temp=a[j];23 a[j]=a[j+1];24 a[j+1]=temp;25 }26 }27 }28 }29 30 }

运行结果: [1, 2, 3, 4, 5, 6, 9, 13, 23]

3、二分法查找

二分法查找前提必须是有序的(升序或降序)

 

1 package array; 2  3 import java.util.Arrays; 4  5 /** 6  * 二分法查找 7  * @author acer 8  * 9  */10 public class binarysearch {11     public static void main(String[] args)12     {13         int searchmath=65;//查找的数14         int[] a={
56,100,23,42,37,120,12,80,94,65,76};15 System.out.printf("普通查找%d的循环次数%d\n",searchmath,generalLoop(a,searchmath));16 System.out.printf("二分查找%d的循环次数%d",searchmath,binarySearch(a,searchmath));17 }18 public static int generalLoop(int[] a,int searchmath)19 {20 int i;21 int searchcount=0;22 for(i=0;i
searchmath)48 {49 end=index;50 }51 else52 {53 break;54 }55 }56 return searchcount;57 }58 }

 

运行结果:

普通查找65的循环次数10

数组已排序
二分查找65的循环次数1

转载于:https://www.cnblogs.com/xiaojingang/p/3702028.html

你可能感兴趣的文章
Java中CAS详解
查看>>
Linux系统实战项目——sudo日志审计
查看>>
Android Application Task Activities的关系
查看>>
浅谈CSS盒子模型
查看>>
get app id
查看>>
[俗一下]世界500强公司的面试问题与答案提示 [转]
查看>>
使用 Excel Services ,结合 Analysis Services 在 SharePoint 中发布报表
查看>>
SQL Server数据导入导出技术概述与比较
查看>>
format的用法
查看>>
DHCPv6 server port and DHCPv6 client port
查看>>
BitmapFactory.Options避免 内存溢出 OutOfMemoryError的优化方法
查看>>
Python中通过Image的open之后,去show结果打不开bmp图片,无法正常显示图片
查看>>
DNGuard 免费的DotNet加密保护工具 V1.0
查看>>
编程中的命名设计
查看>>
easyui form validate总是返回false原因
查看>>
在(CListView)列表视图中添加右键菜单的方法
查看>>
解决IE6-IE7下li上下间距
查看>>
聚集索引更新后会不会马上重新排序
查看>>
幸运大抽奖
查看>>
Post请求
查看>>