您的位置:首页 > 其它

算法 - 排序 - 选择排序

2016-03-05 14:27 190 查看
选择排序

1、基本思想:找出最小元素放在第一位,找出剩余元素中的最小元素放在第二位 .........

2、时间复杂度:O(n*n)

Demo

<span style="font-size:14px;">public class MyChooseSort {

static int[] array;

public static void main(String[] args) {
input();
chooseSort();
output();
}

static void chooseSort(){
int i, j, min, temp;
for(i=0;i<array.length;i++){ // 开始一轮选择排序
min = array[i]; // 头元素设置为 min
int index = i; // 最小值下标
for(j=i+1;j<array.length;j++){ // 与头元素后的元素一一比较
if(min>array[j]){
min = array[j]; // 更新min
index = j; // 记录最小值下标
}
}
temp = array[i]; array[i] = min; array[index] = temp; //交换头元素和最小元素
}
}

static void input(){
System.out.println("请输入一个数组,数字之间以英文逗号分隔:");
Scanner scanner = new Scanner(System.in);
String string = scanner.next().toString(); //读取输入,直到遇到空格或换行,并转化为字符串。
String arrayString[] = string.split(","); // 分割为字符串数组
array = new int[arrayString.length]; // 定义数组长度
for(int i=0;i<array.length;i++){
array[i] = Integer.parseInt(arrayString[i]); // 整型化
}
}

static void output() {
System.out.println("经过选择排序后,结果如下:");
for(int i=0;i<array.length;i++)
System.out.print(array[i] + " ");
}
}</span>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: