数组的声明有两种方式: 数据类型[] 数组名 or 数据类型 数组名[]
为什么有两种这样的声明方式?有人说是为了照顾C语言的程序员。不管怎么说,存在就有一定的道理,那到底有什么区别呢?
我分别为两种方式测试了一下效率,发现(数据类型[] 数组名)这种声明方式效率更高。以下是测试代码,测试环境(系统:windows xp,jdk6.0版本,工具MyEclipse9.0):
- [/align]package com.itcast.itheima;
- import java.util.Date;
- public class ArrayTest {
- public static void main(String[] args) {
- //获取当前时间
- long start = System.currentTimeMillis();
- String[] array1 = new String[9];
- //打印出耗时
- System.out.println("array1"+new Date((System.currentTimeMillis()-start)).getSeconds());
- //获取当前时间
- long start2 = System.currentTimeMillis();
- String array2[] = new String[9];
- //打印出耗时
- System.out.println("array2"+new Date((System.currentTimeMillis()-start2)).getSeconds());
- }
- }
复制代码总结:
1. 数据类型[] 数组名 这种方式确实比较好
2. 采用这种方式声明更标准,Eclipse和MyEclipse生成的main函数的参数是采用这种方式public static void main(String[] args)
一维数组的排序:
排序的分类:
① 内部排序:将需要处理的所有数据都加载到内部存储器中进行排序(包括交换式排序、选择式排序、插入式排序)
② 外部排序法:数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。包括(合并排序法和直接合并排序法)
下面主要介绍内部排序中的交换排序和选择排序:
1. 交换排序法可分为两种:
冒泡排序法、快速排序法
2. 选择排序法又可分为两种:
选择排序法、堆排序法
由于长度限制,冒泡代码页比较容易就不贴出来了,贴选择排序和快速排序
由于代码贴出来总显示一堆HTML标记,郁闷!怎么解决?上面一段也是贴了好久!
选择排序代码连接:http://blog.163.com/it_network/blog/static/218708395201332585229740/
快速排序代码连接:http://blog.163.com/it_network/blog/static/218708395201332582754334/
总结:
1. 快速排序法虽然很快,但是程序复杂,初学者刚开始难理解,耗内存。
2. 冒泡排序虽然远不及快速排序快,但占内存小,程序复杂性较低、对初学者比较容易上手。
3. 选择排序和冒泡排序相似度很高,必须分清以免混淆。
4. 交换的时候可采用位移的方式,效率较高,可读性低.
毕姥爷视频有详细讲解:
array[x]=array[x]^array[y];
array[y]=array[x]^array[y];
array[x]=array[x]^array[y];
5.关于更多的排序可以参考:http://blog.csdn.net/shan9liang/article/details/7540928