【Java SE】如何用Java实现直接选择排序

摘要:直接选择排序属于选择排序的一种,但是它的排序算法比冒泡排序的速度要快一些,由于它的算法比较简单,所以也比较适合初学者学习掌握。

  1. 适宜人群:有一定Java SE基础,明白Java的数据类型,数组的定义、初始化以及常用数组的方法,还有Java的循环操作。
  2. 前期准备:最好有一个开发工具比如说:eclipse或者myeclipse都可以,当然你使用DOS系统进行编译运行都可以,只不过改bug会麻烦一点。
  3. 排序原理:直接选择排序的原理是将指定排序位置与其他数组元分别对比,如果满足条件就交换位置的值,注意这里区别冒泡排序,不是交换相邻元素,而是将满足条件的的元素与指定的排序位置交换。
  4. 对比冒泡排序:和冒泡排序相比,直接选择排序的交换次数要少很多,所以速度会快一点。
  5. 直接排序的优缺点:运算速度比冒泡排序快,但是由于在直接选择排序中存在着不相邻元素之间的互换,因此,直接选择排序是一种不稳定的排序方法。
  6. 算法实现:
 1 package liuenci.cn.package_3;
 2
 3 public class SelectSort {
 4
 5     /**
 6      * 直接选择排序
 7      */
 8     public static void main(String[] args) {
 9         // TODO Auto-generated method stub
10         //创建一个乱序的数组
11         int[] array={2,55,62,44,25,16};
12         //创建直接排序的对象
13         SelectSort sorter=new SelectSort();
14         //调用直接选择算法对数组排序
15         sorter.sort(array);
16     }
17     public void sort(int[] array){
18         int index;
19         for(int i=1;i<array.length;i++){
20             index=0;
21             for(int j=1;j<=array.length-i;j++){
22                 if(array[j]>array[index]){
23                     index=j;
24                 }
25                 //交换在位置array.length-i和index(最大值)上的两个数
26                 int temp=array[array.length-i];
27                 array[array.length-i]=array[index];
28                 array[index]=temp;
29             }
30
31         }
32         showArray(array);
33     }
34     public void showArray(int[] array) {
35         // TODO Auto-generated method stub
36         for(int i=0;i<array.length;i++){
37             int num=array[i];
38             System.out.print(num+" ");
39         }
40         System.out.println();
41     }
42
43 }
时间: 2024-10-30 16:40:26

【Java SE】如何用Java实现直接选择排序的相关文章

几种排序方式的java实现(01:插入排序,冒泡排序,选择排序,快速排序)

以下为集中排序的java代码实现(部分是在引用别人代码): 插入排序(InsertSort): //代码原理 public static void iSort(int[] a){ for(int i = 1;i < a.length; i++){ if(a[i] < a[i-1]){ int temp = a[i]; while(temp < a[i-1]){ a[i] = a[i-1]; if(i-1 > 0){ i--; }else{ break; } } a[i-1] = t

Java SE复习_1 Java的基本格式和运算符

△.代表在当前目录.classpath能在任何路径下访问类文件. △单行注释可以嵌套,多行注释不能嵌套 △java中的标识符只能有数字,字母,$和_,其他的符号都是错误的,不合法的.其中数字不能是开头. △快捷打开命令窗口.按住shift,右键此处打开命令窗口. △跨平台原理:只要在需要运行java应用程序的操作系统上,先安装一个Java虚拟机(JVM Java Virtual Machine)即可.由JVM来负责Java程序在该系统中的运行. △字符常量:''单引号中必须放的是单个数字(0~9

Java SE 8 新特性之旅 : Java开发世界的大变动

我很自豪的成为了adopt-OpenJDK的一员,像其他专业团队成员一样,但是我只刚加入了8个月,我们一同经历了Java SE 8 的开发.编译.编码.讨论--等等,直到JDK上线.Java SE 8发布于2014年3月18日,现在可供下载使用. 我很高兴发布这一系列"Java SE 8 新特性之旅",我会写一些例子来简化Java SE 8知识的获取.开发经验.新特性和API,然后 利用你的知识,提高你的编码能力,同时提高你的生产力.我希望你能像我写文章一样享受它. 我们将游览Java

在 Java SE 6 中监视和诊断性能问题

Java™ Platform, Standard Edition 6 (Java SE) 专注于提升性能,提供的增强工具可以管理和监视应用程序以及诊断常见的问题.本文将介绍 Java SE 平台中监视和管理的基本知识,并提供 Java SE 6 中相关增强的详细信息. Java SE 6 对性能进行了深入研究,使用增强的工具管理和监视应用程序并且诊断常见问题.这些改进包括: 监视和管理 API 增强 正式支持增强的图形监视工具 JConsole 提供增强的 Java 虚拟机(JVM)测试工具 本

Monitor and diagnose performance in Java SE 6--转载

Java SE 6 provides an in-depth focus on performance, offering expanded tools for managing and monitoring applications and for diagnosing common problems. The improvements include: Monitoring and management API enhancements Official support for an imp

选择排序算法Java与Python实现

Java 实现 package common; public class SimpleArithmetic { /** * 选择排序 * 输入整形数组:a[n] [4.5.3.7] * 1. 取数组编号为i(i属于[0 , n-2])的数组值 a[i],即第一重循环 * 2. 假定a[i]为数组a[k](k属于[i,n-1])中的最小值a[min],即执行初始化 min =i * 3. 取数组编号为m(m属于[i+1,n-1])的数组值 a[m],即第二重循环 * 4. 若 a[m] < a[m

java ScriptEngine 使用 (java运行脚本文件)

转自:http://www.tuicool.com/articles/imEbQbA Java SE 6最引人注目的新功能之一就是内嵌了脚本支持.在默认情况下,Java SE 6只支持JavaScript,但这并不以为着Java SE 6只能支持JavaScript.在Java SE 6中提供了一些接口来定义一个脚本规范,也就是JSR223.通过实现这些接口,Java SE 6可以支持任意的脚本语言(如PHP或Ruby). 运行第一个脚本程序 在使用Java SE 6运行脚本之前,必须要知道你的

初识Java和简单的Java文件编写及注意事项

Java的起源: 大胡子的Java语言主要的开发者James Gosling由此也被公认为Java语言之父.1995年5月23日,Sun科技部主管John Gage和Netscape创始人及副执行官Marc Andressen登上论坛向SunWord的听众宣布Java技术正式诞生,并将其纳入Netscape Navigator这个Web浏览器.十多年过去了,Java编程语言已经发展为“一种计算语言,一个平台,一个网络计算的架构(Sun首席执行官:Mac)”. Java平台分类:Java编程语言体

选择排序法对数组进行排序

package selectionSort; import java.util.Arrays; public class Exam { //使用选择排序法对数组进行排序 public static void main(String[] args) { int[] nums= {23,3453,123,54,12,45,145,135,656,146,65}; SelectionSort(nums); System.out.println(Arrays.toString(nums)); } pub