关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

基础排序算法

发布时间:2023-06-26 13:59:59

  • 排序算法总结(图片CV的)
  • 快速排序

基本思想:分而治之、挖坑填数

基本实现原理如下

  1. 首先选取target目标作为参考数字
  2. 然后将数组中所有的数据与target比较,比target小的置于左边,比target大的,置于右边,形成两个区间。
  3. 重复1、2步,直到数组的所有子区间的大小为1为止
  • 例子如下:
    • 设存在数组为[30,40,60,10,20,50],取第0个元素为target元素
    • 伪代码描述如下:
      1. 设置初始参考值为target=arr[0],设置两个指针left=0,right=arr.length-1
      2. right--移动右边界索引,直到出现arr[right]<target时,此时填坑将arr[left]=arr[right],然后left++
      3. left++移动左边界索引,直达出现arr[left]>target时,此时填坑将arr[right]=arr[left],然后right--
      4. 重复b,c操作,直到left==right,将arr[left]=target
    • 代码如下:
因涉及一些执行语句,不能写入,请联系客服获取

   

  • 归并排序

基本思想:分而治之,先拆开后合并,由局部子序列有序推导出序列整体有序

基本实现原理如下

  1. 首先将需要排序的数组每次都对半拆分,直到每个序列都只有一个元素
  2. 而后进行合并操作,将arr[left...mid],arr[mid+1...right]合并
  3. 合并过程中,将arr[left...mid],arr[mid+1...right]每个元素进行比较,按照递增或者递减顺序存放进newArr
  4. 重复以上2、3步骤,直到到达递归树顶层
  • 具体过程如下:
    • 数组分组
    • 数组治理
    • 数组合并过程
  • 归并排序代码

 

因涉及一些执行语句,不能写入,请联系客服获取

   

基本思想:增量逐渐缩小

基本实现原理如下

  1. 首先取target=arr.length/2为参考增量,每次将target减半
  2. 由arr[i]与arr[i-target]比较,若i-target大于i,则i-target后移
  3. 重复1、2操作,直至target=1
  4. shell排序过程
  • 具体实现代码如下:

   

因涉及一些执行语句,不能写入,请联系客服获取

/template/Home/leiyu/PC/Static