选择排序SelectionSort
算法思路:
- 给定的一个数组,首先,元素比较,选择其中的最小元素值与第一个元素进行交换;(通过寻找最小元素的下标)
- 接着对不包括第一个元素的剩余元素进行第二轮比较,得到的最小值与第二个元素进行交换;
- 重复上述步骤,直到进行比较的元素只剩下一个,排序完成。
动图演示:
![](https://i-blog.csdnimg.cn/blog_migrate/2b7725a6cdef60eb1efdc4744a61e214.gif)
JAVA代码实现:
public class SelectionSort {
public static void selectionSort(int[] arr){
for(int i=0;i<arr.length-1;i++){//外部循环控制执行次数
int minIndex=i;
for(int j=i;j<arr.length;j++){//内部循环寻找最小元素的下标
if(arr[minIndex]>arr[j]){
minIndex=j;
}
}
int temp=arr[minIndex];
arr[minIndex]=arr[i];
arr[i]=temp;
}
}
public static void main(String[] args) {
int[] a ={8,4,5,9,0,3,2,6,1,7};
selectionSort(a);
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
}
}
三人行,必有我师焉。欢迎指正