/**
*
* @author LLJ
* 直接排序(数组)
*/
public class SelectSort {
public static void main(String[] args) {
int []a = {8,2,7,9,5};
System.out.println("----排序前元素顺序----");
printArray(a);
System.out.println("----执行直接排序----");
selectSort(a);
System.out.println("----排序后元素顺序----");
printArray(a);
}
/**
* 直接排序
* @param a
*/
public static void selectSort(int[] a){
for(int i = 0;i < a.length;i++){
int min = a[i];//随便搞一个值,当临时的最小值,与别的值对比使用
int minIndex = i;//临时最小值的下标
//这一步,是为了找到最小值(min)和最小值的下标(minIndex)
for(int j = i+1;j<a.length;j++){
if(a[j]<min){//判断a[j]是否小于min的值
min = a[j];//把a[j]的值替换min的临时值
minIndex = j;//替换临时最小值的下标
}
}
if(minIndex != i){//说明minIndex的值已经被j替换掉了
int t = a[i];//赋值交换,类似于冒泡排序
a[i] = a[minIndex];
a[minIndex] = t;
}
}
}
/**
* 遍历数组元素
* @param a
*/
public static void printArray(int[] a){//遍历数组元素
for(int i = 0;i <a.length;i++){
System.out.print(a[i]+"\t");
}
System.out.println();
}
}
直接排序(数组)
最新推荐文章于 2024-01-06 21:00:00 发布