常用的查找和排序
查找:
顺序查找:就一个接着一个去匹配....
二分法查找:每次不断的缩减一半的范围去查找,条件:关键字已排序
排序
直接插入排序:
假设有2个数列,一个为原数列A1,一个为新数列A2(初始化的时候为空)。
步骤:按顺序每次从 A1拿出数放到A2中,并确保每次放入的时候都在正确的位置(按某种规则,比如:升序:前面的小后面的大;降序:前面的大后面的小)
选择排序:
规则:从小到大
步骤:每次选择的时候把剩下的数选出最小的,然后跟上次位置+1的数交换(如果是第一次,则上次的位置为-1,因为数组是从0开始的...)
冒泡排序:
规则:从小到大
步骤:两两对比,满足条件就交换位置,每一次下来最大(或者最小)都会在最后面(最前面)
希尔排序(别名:缩小增量排序):
规则:从小到大
步骤:当前位置的数 跟 +gap的位置上的数去比较,满足条件就交换位置;然后不断的减少gap,重复上述步骤;当gap = 1的时候排序结束;
快速排序:
规则:从小到大,左边小右边大
步骤:选定一个pivot(一般选最左边或者最右边),假设pivot在最左边,两端分别有两个指针,从右边开始,右边先向左边移动,找到比pivot小的数并停止;然后左边开始,找到比pivot大的数然后停止,交换两个指针指向的位置的数。接着继续上述步骤,当两个指针重叠的时候,pivot跟指针重叠的位置交换,完成第一次排序,此时pivot的左边<pivot,右边>pivot. 重复上面步骤,直到子序列的长度=1