您的位置:首页 > 编程语言 > Java开发

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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: