- /*
- * 数组排序之[选择排序]:(本质:不断挑选剩余元素中的最小者)
- * 分析:
- * 1、定义一个数组
- * 2、因为涉及到交换,所以定义一个数组中两个位置上元素交换的方法
- * 3、找到数组中最小的元素,将它和数组的第一个元素交换位置(如果第一个元素就是最小元素,那么它就和自己交换)
- * 4、在剩下到元素中找到最小的元素,将它与数组中的第二个元素交换位置,
- * 5、循环这个过程,直到整个数组排序
- */
- public class SimpleIteration {
- /**
- * @param args
- */
- public static void main(String[] args) {
- // 定义一个数组
- int[] qm = {11,13,7,8,1,3,4,2};
- //调用选择排序方法
- selectSort(qm);
- //遍历打印数组元素
- for(int s : qm ) {
- System.out.print(s + " ");
- }
- }
- //选择排序
- /*找到数组中最小的元素,将它和数组的第一个元素交换位置(如果第一个元素就是最小元素,那么它就和自己交换)
- * 在剩下到元素中找到最小的元素,将它与数组中的第二个元素交换位置,
- * 循环这个过程*/
- public static void selectSort(int[] arr){
- for (int i = 0; i < arr.length-1; i++) {
- int min = i;
- for (int j = i+1; j < arr.length; j++) {
- if (arr[j]< arr[min]) {
- min = j;
- }
- }
- //每一次找出当时数组最小值的索引后,调用方法交换元素位置
- swap(arr, i, min);
- }
- }
- /**
- * 因为涉及到交换,所以定义一个数组中两个位置上元素交换的方法
- * 交换数组中两个元素的位置
- * @param arr
- * @param i
- * @param j
- */
- private static void swap(int[] arr, int i, int j) {
- int temp = arr[j];
- arr[j] = arr[i];
- arr[i] =temp;
- }
- }
复制代码
|
|