网站推广方法素材,微信公众平台注册方法,南京电商网站设计,网站后台的文章怎么做概念#xff1a;
插入排序#xff08;inertion Sort#xff09;一般也被称为直接插入排序#xff0c;是一种简单的直观的排序算法
工作原理#xff1a;将待排列元素划分为#xff08;已排序#xff09;和#xff08;未排序#xff09;两部分#xff0c;每次从…概念
插入排序inertion Sort一般也被称为直接插入排序是一种简单的直观的排序算法
工作原理将待排列元素划分为已排序和未排序两部分每次从未排序的元素选择一个插入到已排序的元素中的正确位置这个位置类似于平时打扑克牌摸牌的操作右手摸牌根据牌面的大小放到左手边正确的位置上 具体实现使用双层循环外层循环枚举除了第一个元素之外的所有元素内层循环遍历当前元素前面的有序表进行待插入位置查找并进行移动 public void insertSort(int[] arr) {if (arr null || arr.length 0) {return;}for (int i 1; i arr.length; i) { // 待插入元素的索引int insertEle arr[i];//对待插入元素进行保存int j i - 1;//有序区中存在多少个元素就需要遍历多少次for (; j 0; j--){if (arr[j] insertEle) {arr[j 1] arr[j];} else {break;}}//直到找到有序区第一个比待插入元素小的位置然后在j1上添加元素arr[j 1] insertEle;}}
leetcode题
删除某些元素后的数组均值
class Solution {public double trimMean(int[] arr) {if(arrnull||arr.length0){return 0;}Arrays.sort(arr);int count arr.length/20;double sum0;for (int i count; i arr.length-count; i) {sumarr[i];}return sum/(arr.length-2*count);}
}
去掉最低工资和最高工资后的平均工资
class Solution {public double average(int[] salary) {insertSort(salary);double sum0;for(int i1;isalary.length-1;i){sumsalary[i];}return sum/(salary.length-2);}private void insertSort(int[] arr) {if (arr null || arr.length 0) {return;}for (int i 1; i arr.length; i) { // 待插入元素的索引int insertEle arr[i];//对待插入元素进行保存int j i - 1;//有序区中存在多少个元素就需要遍历多少次for (; j 0; j--){if (arr[j] insertEle) {arr[j 1] arr[j];} else {break;}}//直到找到有序区第一个比待插入元素小的位置然后在j1上添加元素arr[j 1] insertEle;}}
}
学生分数的最小差值
class Solution {//插入排序public void insertSort(int[] nums){if(numsnull||nums.length0){return;}for (int i 1; i nums.length; i) {int insertElenums[i];int ji-1;for(;j0;j--){if(nums[j]insertEle){nums[j1]nums[j];}else{break;}}nums[j1]insertEle;}}public int minimumDifference(int[] nums, int k) {if (nums.length 1) {return 0;}insertSort(nums);int minnums[k-1]-nums[0];for (int i 1; i nums.length-k; i) {minMath.min(min,nums[ik-1]-nums[i]);}return min;}
}