选择排序和冒泡排序很像,但是这两种算法的思想是不同的
选择排序的话,每次将选出来的数字放到数组的左边,而冒泡则是放到右边。
什么是选择排序呢,选择排序就是扫描整个数组,每扫描一次,从中选择最小的数字。
下面是扫描排序的实现方法
package com.luzhiming.arithtic;
public class SelectSort {
//升序
public static void selectSort(int[] array)
{
int out;
int in;
int min;
for(out = 0 ; out < array.length-1 ; out++)
{
min = out;
//只有这样才能访问到最后一个元素,否则的话,访问不到最后一个元素
for(in=out+1;in<=array.length-1 ; in++)
{
//此处很重要
//可以这样理解,不能拿第一个与所有的后面的数字比较
//而是每找到一个最小的,就拿这个最小的和后面的没有比较过的数字进行比较
if(array[min]>array[in])
{
min = in;
}
}
if(min != out)
{
int tem = array[min];
array[min] = array[out];
array[out] = tem;
}
}
}
public static void main(String[] args) {
int[] array = new int[]{3,1,2,4,5,7,9,8};
selectSort(array);
for(int res : array)
{
System.out.println(res);
}
}
}