选择排序
算法思想:在无序序列中找到一个最小的数与第一个数交换,再在剩下的数中找到最小的一个数与第二个数交换,直到最后一个数
算法实现:例如有{2,3,1,5,4,8,7},
第一轮:将{3,1,5,4,8,7}中的数与第一个数2比较,找到一个比2小的数,将其与2交换,得序列为{1,3,2,5,4,8,7}
第二轮:将{2,5,4,8,7}中的数与第二个数3比较,找到一个比3小的数,将其与3交换,得序列为{1,2,3,5,4,8,7}
第三轮:将{5,4,8,7}中的数与第三个数3比较,3为最小数,得序列{1,2,3,5,4,8,7}
第四轮:将{4,8,7}中的数与第四个数5比较,4比5小,4与5交换位置,得序列{1,2,3,4,5,8,7}
第五轮:将{8,7}中的数与第五个数5比较,5最小,得序列{1,2,3,4,5,8,7}
第六轮:将{7}中的数与第六个数8比较,7比8小,7与8交换,得序列{1,2,3,4,5,7,8}
代码:
import java.util.Arrays;
public class SelectSort {
public static void main(String[] args) {
int[] arr = new int[] {2,3,1,5,4,8,7};
selectSort(arr);
System.out.println(Arrays.toString(arr));
}
public static void selectSort(int[] arr) {
//选择排序 在无序序列中找到一个最小的数与第一个数交换,再在剩下的数中找到最小的一个数与第二个数交换,直到最后一个数
for(int i=0;i<arr.length-1;i++) {
for(int j=i+1;j<arr.length;j++) {
if(arr[j]<arr[i]) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
}