直接选择排序:
1、基本思想:
直接选择排序的基本思想是将指定排序位置与其它数组元素分别比较,如果满足条件就交换元素值,注意这里区别冒泡排序,不是交换相邻的元素,而是把满足条件的元素与指定的排序位置交换,这样排序好的位置逐渐扩大,最后整个数组都成为已排序好的格式。
2、算法:
每一次从带排序的数据元素中选出最大(或最小)的一个元素,顺序地放在已排好序的数列的最后,直到全部待排序的数据元素排完。
/*
* 直接选择排序实例
*/
public class SelectSort {
public static void main(String[] args){
int arr[] = {64, 32, 35, 4, 2, 5};//创建一个数组
SelectSort sorter = new SelectSort();//创建直接排序类的对象
sorter.sort(arr);//调用排序对象的方法将数组排序
}
/*
* 直接选择排序
*/
public void sort(int[] arr){
for(int i = 1; i < arr.length; i++){
int index = 0;
for(int j =1; j <= arr.length-i; j++){
if(arr[j] > arr[index]){
index = j;
}
}
//交换在位置array.length-i和index上的两个数
int temp = arr[arr.length - i]; //把第一个元素值保存到临时变量中
arr[arr.length - i] = arr[index];//把第二个元素值保存到第一个元素单元中
arr[index] = temp;//把临时变量(第一个元素原值)保存到第二个元素单元中
}
showArray(arr);//输出直接选择排序后的数组值
}
/*
* 显示数组中的所有元素
*/
public void showArray(int[] array){
for(int j:array){//遍历数组
System.out.print(">" + j);//输出数组中元素值
}
System.out.println();
}
}