算法
lonesomee
这个作者很懒,什么都没留下…
展开
-
快速排序(Quick sort)
可以让最右侧的6作为枢纽元,左侧比枢纽元小的元素不进行操作,比枢纽元大则标记位置,如果被标记的元素右侧(升序排列)有比枢纽元小的元素,则进行换位(直接和被标记的元素区内的第一个元素换位),保证比枢纽元小的元素都在数组左端,除枢纽元全部换位完成后,枢纽元插入到两种元素分界点位置。y>x情况下,y对应的元素大于枢纽元则y自减,y对应的元素小于枢纽元则结束循环。x...原创 2022-07-26 17:26:26 · 206 阅读 · 0 评论 -
归并排序(Merge sort)
将取走了数据的数组的下一个元素与未取走数据的之前那一位进行对比,再将较小数字填充到新数组中。将两个未排序的“小”数组的所有元素有序的填充到一个新数组中,在排序同时完成“合并”。仅当内部调用a()方法的内部调用a()方法,才会继续运行外部a()方法剩余的代码。将问题分成一些小问题,然后递归求解,然后再将分的阶段得到的问题合并在一起。中间点上级数组第一个下标+(上级数组最大下标-上级数组第一个下标)/2。先将两个数组中的第一个元素进行对比,将较小数字填充到新数组中(升序)表现在方法的内部,调用当前方法自身。..原创 2022-07-23 11:27:21 · 151 阅读 · 0 评论 -
希尔排序(Shell sort)
通过相距一定间隔的元素来工作,各轮对比所用的距离随着算法的进行而减小,走到只比较相邻元素的最后一轮排序位置,所以,它也叫作缩减增量排序。默认的增量为length/2,例中数长度为8,则默认增量为4,那么第一个元素将与第五(1+4)个元素对比,其余元素以此类推。这种情况在排序时,会先暂时跳过增量值对应数量的元素,然后向右对比,并每次对比当前下标-增量值对应的下标的元素。最后一轮,增量为1,即比较相邻的元素,全部参与排列(1/2=0,所以为最后一轮)以升序为例,如果左侧的同一组数据较大,则换位。......原创 2022-07-14 19:36:19 · 286 阅读 · 0 评论 -
插入排序(Insertion sort)
原理假定第一个数字最小(升序排列),从第二个数字开始(每一次选定的数字范围向后递增,第一次只比较前两个数字,第二次前三个…以此类推),依次将数字插入到它应该放置的位置。(暂未选定的其余数字不参与排序,每次换位的数字为最后一位,第一次为第二个,第二次第三个…以此类推)注意:以此为例,编码时可以先将1存在临时变量中,并将4 5 9向右移位后再将1放入指定位置,不用每次换位都存一次1,可以略微提高代码执行速度当进行到最后一步时 例如数组内容为(1 2 4 3 5 —— 1 2 3 4 5)时,由于3 > 2,所以原创 2022-07-12 20:01:32 · 241 阅读 · 0 评论 -
选择排序(Selection sort)
将未排序的第一个数字和剩余每个数字进行对比,如果与预期顺序(升序)不符,则换位第一轮完成后,最小的数字到了第一位,所以第二轮只需要从第二位开始比较,第三轮从第三位…以此类推。每一轮都较上轮执行次数-1(递减)。当仅剩一个数字时,这个数字便是最大的数字循环轮次 = 数组长度 - 1每轮执行次数 = 数组长度 - 当前轮次 实现步骤.........原创 2022-07-09 17:09:17 · 124 阅读 · 0 评论 -
冒泡排序(Bubble sort)
原理反复对比相邻的两个元素,如果与预期的顺序(升序或降序)不符,则进行换位操作反复从头开始执行因为每一轮确定一个数字,所以后续不需要再对该数字进行比较,每一轮都较上轮执行次数-1(递减)每轮执行次数 = 数组长度 - 当前轮次循环时使用0作为初始条件则 每轮执行次数 = 数组长度 - 当前轮次 - 1每一轮都能保证将最大的数移动到右侧,即第一轮可以保证最大的数字到最右侧,第二轮可以保证第二大的数在倒数第二位,……每一轮循环都可以保证一个数字移动到了正确的位置,在多次循环执行到仅剩一个数时,这个数即为最小数,原创 2022-07-09 16:03:59 · 121 阅读 · 0 评论 -
排序算法概述
被排序数据是一组相同类型,相同定位的数据,数组表述的就是这样的数据常用算法冒泡排序(Bubble sort)选择排序(Selection sort)插入排序(Insertion sort)希尔排序(Shell sort)归并排序(Merge sort)快速排序(Quick sort)算法是为求解一个问题,需要遵循的,被清楚指定的简单指令的集合排序核心是“对比大小”并将顺序不符的2个数字进行换位 经过多次换位后 最终达到一串有序的结果某些特殊排序算法中可能没有“换位”操作在执行换位时,不能直接让两个变量把值赋原创 2022-07-09 15:58:52 · 113 阅读 · 0 评论