算法与数据结构—选择排序
算法思路
例如:给定一个无序数组int arr={1,3,2,6,9}; n代表集合数组的长度,给出一个算法将数组arr按照从小到大的顺序进行排列。
选择排序:遍历[i,n)寻找最小值,找到之后与i的位置进行交换,以此类推。
代码
public static void selectionSort(int[] arr,int n){
for(int i=0;i<n;i++){
int minIndex=i;//最小值下标,初始化为数组的第一个数
/*寻找最小值*/
for(int j=i+1;j<n;j++){//第一个数默认为最小,所以从i+1的位置进行遍历
if(arr[j]<arr[minIndex]){
//保存最小值下标
minIndex=j;
}
}
/*与i的位置进行交换*/
swap(arr,i,minIndex);
}
}
public static void swap(int[] arr,int a,int b){
int temp=arr[a];
arr[a]=arr[b];
arr[b]=temp;
}
时间复杂度
O(n^2)
本文详细介绍了选择排序算法的基本原理及其实现过程。通过遍历数组找到最小元素并将其置于正确位置来实现排序。提供了完整的Java代码示例,并分析了其时间复杂度为O(n^2)。
219

被折叠的 条评论
为什么被折叠?



