首页 > 编程语言 >常见的排序算法总结

常见的排序算法总结

时间:2022-11-01 20:23:25浏览次数:45  
标签:总结 arr int 插入 算法 insertValue 数组 排序

1.插入排序

一般分两种 

直接插入排序希尔排序

直接插入排序:

(1)对于一个有序的数组插入元素i,先把i和数组[end]比较,如果大于,直接加入到最后,如果小于

则于数组[end-1]进行比较,类比同理,知道找到大于的end的值。

 (2)对于一个没有或者说不知道有没有排序的数组,我们需要怎么办?

首先我们可以把这个数组看成很多的小的。

代码解析:用intsertValue来记录要插入的值,两个for,第一个for来遍历一遍数组,第二个for来做判断,判断要插入的数是不是比前一个要小,如果小

就需要把插入的数向前移动,即把前面的数赋值给右边,arr[j+1] = arr[j],一直到比插入的数要大的时候停止,并把缺失的insertVallue值赋值给arr[j+1]

    public static int[] insertSort(int[] arr){
for (int i = 1; i < arr.length; i++) {
int insertValue = arr[i];
int j = i - 1;
//从右向左比较元素的同时,进行元素复制
for(; j >=0 && insertValue < arr[j]; j--){//如果右边的比要插入的值小,把左边的赋值给右边
arr[j+1] = arr[j];
}
//insertValue的值插入适当位置
arr[j+1] = insertValue;
}
return arr;
}}

标签:总结,arr,int,插入,算法,insertValue,数组,排序
From: https://www.cnblogs.com/sumiture/p/16849009.html

相关文章

  • 实验二:逻辑回归算法实验
    【实验目的】1.理解逻辑回归算法原理,掌握逻辑回归算法框架;2.理解逻辑回归的sigmoid函数;3.理解逻辑回归的损失函数;4.针对特定应用场景及数据,能应用逻辑回归算法解决实际......
  • 启发式算法(Heuristic Algorithm)的理解(通俗版)
    有两类算法可以解决优化问题: 优化(算法):保证找到最佳解决方案(如果有足够的时间和资源)是把各种可能性都一一进行尝试,最终能找到问题的答案,但它是在很大的问题空间内,花费大......
  • 异常处理总结
    异常是我们无论在日常学习还是工作时,都会遇到并且为之苦恼的,很多方法进行操作时都可能产生异常。异常是不正常情况,和错误稍有不同,这需要搞清楚,异常是一个运行时可能产生的......
  • drf-排序
    https://www.bilibili.com/video/BV1z64y197Dk?p=20&vd_source=caabcbd2a759a67e2a3de8acbaaf08eaviews.pyclassBookView(ModelViewSet):queryset=Book.objects.......
  • 冒泡排序
    publicclassBubblingSort{publicstaticvoidswap(int[]array,inti,intj){inttemp=array[i];array[i]=array[j];array[j]......
  • 选择排序
    /***选择排序*@Authorxin*@Date2022/10/2518:13*@Version1.0*/publicclassSelectionSort{publicstaticvoidswap(int[]array,inti,intj......
  • 插入排序
    publicclassInsertSort{publicstaticvoidswap(int[]array,inti,intj){inttemp=array[i];array[i]=array[j];array[j]=......
  • 快速排序
    publicclassQuickSort{/***场景1*给定一个数组,确定一个数字N,小于N的数组放最左边,大于N的放最右边*/publicstaticvoidsplitNum(int[]......
  • 归并排序
    publicclassMergeSort{/***ans2:非递归实现*/publicstaticvoidmergeSort2(int[]array){if(array==null||array.length<2......
  • Android开发 对接微信分享SDK总结
    原文:Android开发对接微信分享SDK总结-Stars-One的杂货小窝公司项目需要对接微信分享,本来之前准备对接友盟分享的,但友盟的分享实际参数太多,而我又只需要对接一个微信......