php网站怎么做静态化,百度云平台建设网站,网站后台登陆验证码无法显示,四川省人事考试网概述
记录排序算法。
1 选择排序 *** 选择排序* 思路#xff1a;遍历数组#xff0c;找出#xff08;选择#xff09;最小的元素#xff0c;然后和最左边的元素交换。接下来#xff0c;再从第二个元素开始遍历整个数组。再找到最小的元素#xff0c;再和第二个元素交换…概述
记录排序算法。
1 选择排序 *** 选择排序* 思路遍历数组找出选择最小的元素然后和最左边的元素交换。接下来再从第二个元素开始遍历整个数组。再找到最小的元素再和第二个元素交换。* 重复该过程直至遍历完成。* 时间复杂度n^2* 空间复杂度1原地排序除了临时变量不需要额外空间* param arr 数组* return 排好序的数组*/public static int[] selectSort(int[] arr){// 边界条件if(arr.length 1){return arr;}// 0 - n// 1 - n// ...// i - nfor(int i 0; i arr.length; i){int minIndex i;// 在i-n范围内找最小的for(int j i1; j arr.length; j){if(arr[minIndex] arr[j]){minIndex j;}}swap(i, minIndex, arr);}return arr;}/*** 索引i和j位置的元素交换* param i 索引* param j 索引* param arr 数组*/public static void swap(int i, int j, int[] arr){int temp arr[i];arr[i] arr[j];arr[j] temp;}2 冒泡排序
/*** 2冒泡排序* 关键词两两比较* 思路* 第一次遍历从0到n-1遍历数组。两两比较大的元素往后排最后遍历结束时最大的元素就排在了数组末尾。* 第二次遍历从0到n-2遍历数组。两两比较大的元素往后排最后遍历结束时0到n-2中最大的元素就排在了数组n-1的位置处。* ...* 时间复杂度n^2* 空间复杂度1* 注意因为是j1为防止越界添加条件1j i-1又因为是i-1添加条件2i 0* param arr 数组* return 排好序的数组*/public static int[] bubbleSort(int[] arr){// 边界条件if(arr.length 2){return arr;}for(int i arr.length - 1; i 0; i--){// 从0到i遍历两两比较for(int j 0; j i-1; j){if(arr[j] arr[j1]){swap(j, j1, arr);}}}return arr;}3 插入排序
/*** 插入排序* 理解打牌在发牌时先整理好手上的牌。拿到新发的牌后往手上已经整理好的牌中插入。* 思路* 从0到0自己和自己比不用排序* 从0到1小的往前排直至排到第一个位置* 从0到2小的往前排直至拍到第一个位置或者前面的更小* param arr 数组* return 有序数组*/public static int[] insertSort(int[] arr){if(arr null || arr.length 2){return arr;}for(int i 0; i arr.length; i){for(int j i; j 0; j--){if(j-1 0){continue;}if(arr[j-1] arr[j]){swap(j, j-1, arr);}}}return arr;}