java版经典算法排序汇总
2014-02-11 21:30
155 查看
之前用java写过几篇关于排序算法的博客,作为一个初级菜鸟把所有的代码都写在main函数中,感觉不是很好,今天特意花点时间整理一下。
从性能方面而言,内部排序的多种排序方法各有优缺点,无法评定出可以获得公认的最佳排序法,排序算法在不同的环境中执行效率存在较大差异。按排序过程中依据的原则,内部排序方法可以分为插入排序,交换排序,选择排序,并归排序和分配排序5类;按照内部排序过程中所需的工作量,则可以分为简单的排序方法,先进的排序方法和基数排序3类。
在这里先总结一下选择排序和冒泡排序。
为了更好的体现java的面向对象思想,在写排序算法之前需要考虑排序需要用到哪几个功能。
1、首先当然是要有实现排序功能的主体
2、排序的过程中需要将元素的位置互换
3、要将排序后的结果显示出来
分析完需求接下来就是实现它了
步骤1、实现排序功能的主体
冒泡排序、选择排序
步骤2、写出进行元素的位置置换的方法
步骤3、显示排序的结果
完成这三步基本上就大功告成了,接下来就是在main函数中调用了
显示结果:
从性能方面而言,内部排序的多种排序方法各有优缺点,无法评定出可以获得公认的最佳排序法,排序算法在不同的环境中执行效率存在较大差异。按排序过程中依据的原则,内部排序方法可以分为插入排序,交换排序,选择排序,并归排序和分配排序5类;按照内部排序过程中所需的工作量,则可以分为简单的排序方法,先进的排序方法和基数排序3类。
在这里先总结一下选择排序和冒泡排序。
为了更好的体现java的面向对象思想,在写排序算法之前需要考虑排序需要用到哪几个功能。
1、首先当然是要有实现排序功能的主体
2、排序的过程中需要将元素的位置互换
3、要将排序后的结果显示出来
分析完需求接下来就是实现它了
步骤1、实现排序功能的主体
冒泡排序、选择排序
步骤2、写出进行元素的位置置换的方法
private static void swap(int[] array, int m,int n) { int temp = array[m]; array[m] = array ; array = temp; }
步骤3、显示排序的结果
public static void printArray(int[] array) { System.out.print("["); for (int index = 0; index < array.length; index++) { if (index != array.length - 1) System.out.print(array[index] + ","); else System.out.println(array[index] + "]"); } }
完成这三步基本上就大功告成了,接下来就是在main函数中调用了
public static void main(String[] args) { int[] array = { 3, 0, 18, 25, 9, 41, 29, -16, -2, 5 }; // SortDemo.bubbleSort(array);//冒泡排序 // SortDemo.selectSort(array);//选择排序 System.out.println("排序后的数组是:"); SortDemo.printArray(array); }
显示结果:
排序后的数组是: [-16,-2,0,3,5,9,18,25,29,41]算法优化部分参考自袁慎建的博客,未完待续!!!
相关文章推荐
- java学习笔记 标准for循环的执行过程
- java Method isSynthetic
- Java的基本数据类型详解
- java method isBridge
- Eclipse 中双击变量不高亮 解决
- java 中的设计模式
- Java学习这七年
- 出现 java.util.ConcurrentModificationException 时的解决办法
- struts2+spring+hibernate需要的jar包
- Struts2文件上传
- Spring Security 学习之X.509认证 推荐
- 项目启动部署
- java笔记10
- 新手配置SSH框架时出现ssh:对于java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I错误解决
- Java开发环境配置及常见问题
- JAVA数组的定义及使用方法
- struts2中OGNL和 ValueStack(一)
- Spring+Mybatis整合
- 2014年2月11日 struts 后缀名
- struts2 DMI问题