【Java SE】如何用Java实现直接选择排序
2017-05-08 22:45
260 查看
适宜人群:有一定Java SE基础,明白Java的数据类型,数组的定义、初始化以及常用数组的方法,还有Java的循环操作。
前期准备:最好有一个开发工具比如说:eclipse或者myeclipse都可以,当然你使用DOS系统进行编译运行都可以,只不过改bug会麻烦一点。
排序原理:直接选择排序的原理是将指定排序位置与其他数组元分别对比,如果满足条件就交换位置的值,注意这里区别冒泡排序,不是交换相邻元素,而是将满足条件的的元素与指定的排序位置交换。
对比冒泡排序:和冒泡排序相比,直接选择排序的交换次数要少很多,所以速度会快一点。
直接排序的优缺点:运算速度比冒泡排序快,但是由于在直接选择排序中存在着不相邻元素之间的互换,因此,直接选择排序是一种不稳定的排序方法。
算法实现:
前期准备:最好有一个开发工具比如说:eclipse或者myeclipse都可以,当然你使用DOS系统进行编译运行都可以,只不过改bug会麻烦一点。
排序原理:直接选择排序的原理是将指定排序位置与其他数组元分别对比,如果满足条件就交换位置的值,注意这里区别冒泡排序,不是交换相邻元素,而是将满足条件的的元素与指定的排序位置交换。
对比冒泡排序:和冒泡排序相比,直接选择排序的交换次数要少很多,所以速度会快一点。
直接排序的优缺点:运算速度比冒泡排序快,但是由于在直接选择排序中存在着不相邻元素之间的互换,因此,直接选择排序是一种不稳定的排序方法。
算法实现:
package liuenci.cn.package_3; public class SelectSort { /** * 直接选择排序 */ public static void main(String[] args) { // TODO Auto-generated method stub //创建一个乱序的数组 int[] array={2,55,62,44,25,16}; //创建直接排序的对象 SelectSort sorter=new SelectSort(); //调用直接选择算法对数组排序 sorter.sort(array); } public void sort(int[] array){ int index; for(int i=1;i<array.length;i++){ index=0; for(int j=1;j<=array.length-i;j++){ if(array[j]>array[index]){ index=j; } //交换在位置array.length-i和index(最大值)上的两个数 int temp=array[array.length-i]; array[array.length-i]=array[index]; array[index]=temp; } } showArray(array); } public void showArray(int[] array) { // TODO Auto-generated method stub for(int i=0;i<array.length;i++){ int num=array[i]; System.out.print(num+" "); } System.out.println(); } }
相关文章推荐
- 【Java SE】如何用Java实现直接选择排序
- 【Java SE】如何用Java实现反转排序
- 【Java SE】如何用Java实现冒泡排序
- 【Java SE】如何用Java实现冒泡排序
- 【Java SE】如何用Java实现插入排序
- 如何实现在java中实现右键菜单
- Java初学者如何迈出AOP第一步--使用Java 动态代理实现AOP
- 如何用Java实现Web服务器(转-->)
- Java初学者如何迈出AOP第一步--使用Java 动态代理实现AOP(转)
- 请教:在java中如何实现线程的函数互斥调用,用synchronized好像实现不了
- 如何实现java文件队列下载
- Java 中如何实现RSS 2.0
- 想对jpeg格式图像进行压缩(不是缩略图),压缩后还是jpeg格式,在java中如何实现
- JAVA基础应用: 如何实现希尔排序算法
- Multi-View在Java如何实现呀?
- 如何用Java实现利用搜索引擎收集网址的程序
- 在Java应用程序中如何实现FTP的功能
- Java初学者如何迈出AOP第一步--使用Java 动态代理实现AOP
- 如何在Java中实现远程方法调用
- CRC32算法学习笔记以及如何用java实现(一)