成都电商网站,沈阳建站,企业网站设计方案,协同办公系统选择排序
选择排序的基本思想是冒泡排序#xff0c;记录当前位置i和最小值k的位置#xff0c;使用一个变量j往后寻找。 每一轮找到最小值后与第一个元素进行交换#xff0c;以此类推。 不使用辅助变量交换两个元素的值方法
package com.company.sort;import java.util.Ra…选择排序
选择排序的基本思想是冒泡排序记录当前位置i和最小值k的位置使用一个变量j往后寻找。 每一轮找到最小值后与第一个元素进行交换以此类推。 不使用辅助变量交换两个元素的值方法
package com.company.sort;import java.util.Random;//选择排序的基本思想是冒泡排序记录当前位置i和最小值k的位置使用一个变量j往后寻找。
// 每一轮找到最小值后与第一个元素进行交换以此类推。
public class SelectSort {public static final int ARRLENGTH 10;public static void main(String[] args) {//创建数组int[] unSortArray createArray(ARRLENGTH);//打印初始化未排序数组printArray(unSortArray);//选择排序selectSort(unSortArray);//打印选择排序后的数组printArray(unSortArray);}//创建数组方法数组中的元素随机生成public static int[] createArray(int length){int[] arr new int[length];Random random new Random();for (int i 0; i arr.length; i) {arr[i] random.nextInt(20);//[0,20)}return arr;}//打印数组方法public static void printArray(int[] arr){for (int i0;iarr.length;i) {if (i0){if (arr.length1){System.out.println([arr[0]]);}else{System.out.print([arr[i],);}}else if(iarr.length-1){System.out.println(arr[i]]);}else {System.out.print(arr[i],);}}System.out.println(--------------------------------------------------------);}//选择排序法public static void selectSort(int[] arr){for (int i 0; i arr.length; i) {int ki;for (int j i1; j arr.length ; j) {if (arr[k]arr[j]){k j;}}//这里不知为何不使用辅助变量的两种交换元素方法不适用/*arr[i] arr[i]arr[k];arr[k] arr[i]-arr[k];arr[i] arr[i]-arr[k];-------------------------------a a^b;b a^ba a^b;*/int temp arr[i];arr[i] arr[k];arr[k] temp;}}/* public static void selectSort(int[] arr,int length){for (int i 0; i length; i) {int k i;for (int j i1; j length ; j) {if (arr[j]arr[k]){k j;}}int temp arr[i];arr[i] arr[k];arr[k] temp;}}*/
}
核心代码示意图