算法原理
在未排序的数列中找出最大(或最小)的元素,然后将其存入到已排序的数列起始位置,紧接着在剩余的未排序数列中继续查找最大(或最小)的元素,并将其放入到已排序的数列末尾,依次类推,直至未排序的数列中没有元素。
算法图解
算法实现
public class SelectionSort {
public void sort(int arr[]){
int startIndex = 0;
while (startIndex arr.length-1){
int minValue = arr[startIndex];
int minIndex = startIndex;
for(int i=startIndex+1;iarr.length;i++){
if(minValue > arr[i]){
minValue = arr[i];
服务器托管网 minIndex = i;
}
}
if(startIndex != minIndex){
int temp = arr[minIndex];
arr[minIndex] = arr[startIndex];
arr[startIndex]=temp;
}
startIndex++;
}
}
}
测试
public static void main(String[] args) {
int arr[] = {9,7,1991,27,-1,-10,0,2,65,-100};
SelectionSort selectionSort = new SelectionSort();
selectionSort.sort(arr);
for(int i = 0;iarr.length;i++){
System.out.print(arr[i]+"t");
}
服务器托管网 }
结果
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: 2023-12-16:用go语言,给定整数数组arr,求删除任一元素后, 新数组中长度为k的子数组累加和的最大值。 来自字节。
2023-12-16:用go语言,给定整数数组arr,求删除任一元素后, 新数组中长度为k的子数组累加和的最大值。 来自字节。 答案2023-12-16: 来自左程云。 灵捷3.5 大体步骤如下: 算法 maxSum1 分析: 1.计算输入数组 arr 的长度…