2022.03.11–一些排序算法和昨天的题目

针对昨天的题目,今天经过搜寻 得到了解释。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETkBhZ2h2dmJu,size_20,color_FFFFFF,t_70,g_se,x_16

 

a.x=a={n:2},这和js中赋值顺序相关,例如let c = {},
c.h=1,此时的执行顺序为先执行c.h,此时c指向的地址里面包含h:undefined,右边的1最后的返回值为1, 所以c.h=1。


题中的意思就是先算a.x,此时值为undefined,再执行 a={n:2},这个返回值是{n:2},此时a已经指向了新的地址,而b还是指向a原来指向的地址,所以,a.x是undefined,b.x为{n:2}。

 

冒泡排序:就是进行n次循环,将第一个数和第二个数进行比较,若第一个大于第二个,则更换位置。watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETkBhZ2h2dmJu,size_20,color_FFFFFF,t_70,g_se,x_16

选择排序:就是将第一个数当成最小的值min,将其和后面的值进行比较,若min值比后面的大,则将min置为当前的最小值,并将原最小值和当前值交换位置。watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETkBhZ2h2dmJu,size_20,color_FFFFFF,t_70,g_se,x_16 

插入排序:如下图解释watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETkBhZ2h2dmJu,size_20,color_FFFFFF,t_70,g_se,x_16 

快速排序:选一个中心节点p,做指针left,右指针right,若left不小于p,left指针向右移,右指针right不大于p,向左移,此时左右指针的值互换位置,直到left大于right 。再将左边和右边各找中心节点,并各自做上述操作。watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETkBhZ2h2dmJu,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETkBhZ2h2dmJu,size_20,color_FFFFFF,t_70,g_se,x_16 

 归并排序:取中间节点,并将两边数组分别做分解,直到每一项的长度为1,在进行合并。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETkBhZ2h2dmJu,size_20,color_FFFFFF,t_70,g_se,x_16

对于这几道排序题,写完之后感觉还行,没有一开始刚写的时候难。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值