java学习之数组元素排序
选择排序
- *返回值类型 void
- *参数列表 int[] arr
- * 分析:选择排序
- * 第一次arr[0]与arr[1-4]比较,总共比较4次
- * 第二次arr[1]与arr[2-4]比较,总共比较3次
- * 第三次arr[2]与arr[3-4]比较,总共比较2次
- * 第四次arr[3]与arr[4]比较,总共比较1次
冒泡排序
- 返回值类型void
- * 参数列表 int[] arr
- * 分析:冒泡排序
- * 第一次比较arr[0]和arr[1],arr[1]和arr[2],arr[2]和arr[3],arr[3]和arr[4]比较了4次
- * 第二次比较arr[0]和arr[1],arr[1]和arr[2],arr[2]和arr[3]比较了3次
- * 第三次比较arr[0]和arr[1],arr[1]和arr[2]比较了2次
- * 第四次比较arr[0]和arr[1]比较了1次
package com.ifenx8.study.array; public class Demo_BubbleSort { /** 需求: 数组元素:{24, 69, 80, 57, 13} 请对数组元素进行排序。 */ public static void main(String[] args) { int[] arr = {24, 69, 80, 57, 13}; //bubbleSort(arr);//冒泡排序 selectSort(arr);//选择排序 print(arr); } /* *返回值类型 void *参数列表 int[] arr * * 分析:选择排序 * 第一次arr[0]与arr[1-4]比较,总共比较4次 * 第二次arr[1]与arr[2-4]比较,总共比较3次 * 第三次arr[2]与arr[3-4]比较,总共比较2次 * 第四次arr[3]与arr[4]比较,总共比较1次 * */ 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[i] > arr[j]){ /*int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp;*/ swap(arr, i , j); } } } } /**冒泡排序 * 返回值类型void * 参数列表 int[] arr * 分析: * 第一次比较arr[0]和arr[1],arr[1]和arr[2],arr[2]和arr[3],arr[3]和arr[4]比较了4次 * 第二次比较arr[0]和arr[1],arr[1]和arr[2],arr[2]和arr[3]比较了3次 * 第三次比较arr[0]和arr[1],arr[1]和arr[2]比较了2次 * 第四次比较arr[0]和arr[1]比较了1次 * */ public static void bubbleSort(int[] arr) { for (int i = 0; i < arr.length - 1; i++) {//外部循环比较的是第几次 for (int j = 0; j < arr.length - 1 -i; j++) {//内部循环比较了几次 if(arr[j] > arr[j + 1]){ /*int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp;*/ swap(arr , j , j + 1 ); } } } } /* *打印数组 */ public static void print (int[] arr){ for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } } /* * 把两个排序中共同的部分抽取成一个方法 * int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; 代码更简洁 */ private static void swap(int[] arr, int i ,int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } }
评论前必须登录!
注册