这是两种非常相似的算法,都是两个嵌套循环。之前看网上很多人将选择排序当冒泡排序用,我怕以后混了,记录一下。
选择排序
/** * 选择排序 * @Title: getSelectSort * @Description: TODO(这里用一句话描述这个方法的作用) * @param @param arr * @param @return 设定文件 * @return int[] 返回类型 * @throws */ public static int[] getSelectSort(int[] arr){ for (int i = 0; i < arr.length; i++) { int temp = 0; for (int j = 0; j < arr.length; j++) { if(arr[i] < arr[j]){ temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; continue; } } } return arr; }
冒泡排序
/** * 冒泡排序 * @Title: getBubbleSort * @Description: TODO(这里用一句话描述这个方法的作用) * @param @param arr * @param @return 设定文件 * @return int[] 返回类型 * @throws */ public static int[] getBubbleSort(int[] arr){ /** * 外层循环-1是因为最后一个数字不用比较 * 内存循环-1是因为防止数组越界 * 内存循环-i冒泡的特色 外城循环一次,就已经确定了一个位的值,所以这个位的值 不参与下次循环 * 外层每循环一次,内层较少循环一次 外层确定循环次数,内存进行排序 */ for (int i = 0; i < arr.length-1; i++) { int temp = 0; for (int j = 0; j < arr.length-1-i; j++) { if(arr[j] > arr[j+1]){ temp = arr[j ]; arr[j] = arr[j+1]; arr[j+1] = temp; continue; } } } return arr; }
时间: 2024-10-13 17:27:22