排序:
将无序的数据安装特定的规则排成有序数据(升序、降序)
常见的排序算法,有十几种,比较多,有些非常抽象。
冒泡排序:
算法原理:
1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
3.针对所有的元素重复以上的步骤,除了最后一个。
4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
代码实现
--优点:比较简单,空间复杂度较低,是稳定的;
--缺点:时间复杂度太高,效率慢;
选择排序:
算法原理:
随机确定一个标志位(一般为第一个数字)作为最小数,然后向后遍历,找到比标志位更小的数便与标志位互换位置并更新最小数,
实现步骤为:
1.将数组的第一个数字设置为标志位最小数并记录最小数下标。
2.向后遍历,发现更小数后将该数与标志位互换位置并更新最小数与最小数下标。
3.循环完成排序
代码实现
二分查找
针对于有序的序列,可以直接查找中间值
算法原理
将数组分为两份,首先取出中间值,判断查找值是否等于中间值,如果等于,则直接返回,否则将数组以中间值为分割线进行分割,再判断查找值和中间值的大小关系,如果查找值小于中间值,则从 中间值前面的数组中查找(不包括中间值,因为已经做过比较了),否则从后面的数组中查找,递归实现全部查找,如果最后没有找到,在循环外返回找不到即可!
代码实现