zoukankan      html  css  js  c++  java
  • 常用的查找和排序

    查找:

    顺序查找:就一个接着一个去匹配....

    二分法查找:每次不断的缩减一半的范围去查找,条件:关键字已排序

     

    排序

    直接插入排序:

          假设有2个数列,一个为原数列A1,一个为新数列A2(初始化的时候为空)。

          步骤:按顺序每次从 A1拿出数放到A2中,并确保每次放入的时候都在正确的位置(按某种规则,比如:升序:前面的小后面的大;降序:前面的大后面的小)

    选择排序:

          规则:从小到大

       步骤:每次选择的时候把剩下的数选出最小的,然后跟上次位置+1的数交换(如果是第一次,则上次的位置为-1,因为数组是从0开始的...)

    冒泡排序:

          规则:从小到大

       步骤:两两对比,满足条件就交换位置,每一次下来最大(或者最小)都会在最后面(最前面)

    希尔排序(别名:缩小增量排序):

          规则:从小到大

          步骤:当前位置的数 跟 +gap的位置上的数去比较,满足条件就交换位置;然后不断的减少gap,重复上述步骤;当gap = 1的时候排序结束;

    快速排序:

      规则:从小到大,左边小右边大

      步骤:选定一个pivot(一般选最左边或者最右边),假设pivot在最左边,两端分别有两个指针,从右边开始,右边先向左边移动,找到比pivot小的数并停止;然后左边开始,找到比pivot大的数然后停止,交换两个指针指向的位置的数。接着继续上述步骤,当两个指针重叠的时候,pivot跟指针重叠的位置交换,完成第一次排序,此时pivot的左边<pivot,右边>pivot. 重复上面步骤,直到子序列的长度=1

  • 相关阅读:
    【结对开发】电梯调度 一(从电梯布局分配考虑)需求分析及设计思路。
    【结对开发】求一个整数数组的所有子数组中和的最大值。
    【测试用例选取及异常处理】 之 求一个数组中的最大整数。
    互测测评报告
    绩效考核
    冲刺5
    写个烂android一天到晚活累死,
    冲刺3
    冲刺2
    冲刺1
  • 原文地址:https://www.cnblogs.com/lanxue/p/2689722.html
Copyright © 2011-2022 走看看