Java-算法之选择排序
2016-07-17 22:12
441 查看
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)。
代码
package top.jzdxjzf.arithmetic; import java.util.Random; /** * 选择排序(Selection sort) * 是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置 ,直到全部待排序的数据元素排完。 * 选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)。 * * @author Java_feng * * 2016年7月17日-下午9:54:29 */ public class SelectionSortDemo { public static void main(String[] args) { // 待排序的数组 int[] number = new int[10]; Random rand = new Random(); // 给数组赋值 for (int i = 0; i < 10; i++) { number[i] = rand.nextInt(100); } System.out.print("长度为: " + number.length + " 的原数组: "); // 输出数组 printf(number); // 选择排序 selectionSort(number); printf(number); } /** * 打印数组 * * @param number * 待打印的数组 */ private static void printf(int[] number) { for (int i = 0; i < number.length; i++) { System.out.print(number[i]); if (i != number.length - 1) { System.out.print(" , "); } } System.out.print("\n"); } /** * 选择排序 * * @param number * @return */ private static int selectionSort(int[] number) { if (number == null || number.length == 0) { return -1; } int index = 0; int temp = 0; for (int i = 0; i < number.length; i++) { index = i; for (int j = i; j < number.length; j++) { if (number[j] < number[index]) { index = j; } } if (i != index) { temp = number[i]; number[i] = number[index]; number[index] = temp; } } return 1; } }
相关文章推荐
- JAVA学习总结二十五
- 建立java环境
- 字符流中第一个不重复的字符 java
- java积累——load-on-startup在web.xml中的作用
- JDK的命令行工具
- java基础--07成员变量和局部变量
- 69道Spring面试题和答案
- Spring cookie 实战
- Java多线程程序设计
- 和为S的两个数字 java
- JAVA IO流——IBM之Java 8 中的 Streams API 详解
- Java内存回收
- spring 注解方式配置Bean
- 如何为eclipse中的文件设置默认编码
- Java实现查找当前字符串最大回文串代码分享
- java8:Supplier和Stream
- Java设计模式之Strategy模式
- 文本编写Java
- Java类库1(16.7.12)
- 神奇的java socket编程