排序和查找总结

19 篇文章 0 订阅

排序:

将无序的数据安装特定的规则排成有序数据(升序、降序)

常见的排序算法,有十几种,比较多,有些非常抽象。
 

冒泡排序:

        算法原理:

1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
3.针对所有的元素重复以上的步骤,除了最后一个。
4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
 

代码实现

--优点:比较简单,空间复杂度较低,是稳定的;
--缺点:时间复杂度太高,效率慢;

选择排序:

                算法原理:
    随机确定一个标志位(一般为第一个数字)作为最小数,然后向后遍历,找到比标志位更小的数便与标志位互换位置并更新最小数,
                实现步骤为:
    1.将数组的第一个数字设置为标志位最小数并记录最小数下标。
    2.向后遍历,发现更小数后将该数与标志位互换位置并更新最小数与最小数下标。
    3.循环完成排序


 代码实现

 

二分查找

针对于有序的序列,可以直接查找中间值
        算法原理

将数组分为两份,首先取出中间值,判断查找值是否等于中间值,如果等于,则直接返回,否则将数组以中间值为分割线进行分割,再判断查找值和中间值的大小关系,如果查找值小于中间值,则从 中间值前面的数组中查找(不包括中间值,因为已经做过比较了),否则从后面的数组中查找,递归实现全部查找,如果最后没有找到,在循环外返回找不到即可!
 

代码实现

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值