def main():
    arr= (5,2,1,83,491,3,45,21,56,235,61,36,13,4,643,123,64)
    list = []
    for node in arr:
        end = len(list)
        start = 0
        medium = end // 2
        if 0 != end:
            while True:
                if node > list[medium]:
                    start = medium + 1;
                else:
                    end = medium;

                medium = start + (end - start) / 2//end - start为基数时,除以2取整后会损失精度,我认为这是start = medium + 1的原因;
                if start >= end:
                    break;

        list.insert(start, node)
        for a in list:
            print a;
        print "======="


if __name__ == '__main__':
    main()

 

相关文章:

  • 2022-12-23
  • 2021-10-21
  • 2021-12-07
  • 2022-12-23
  • 2022-12-23
  • 2021-12-23
  • 2021-09-27
猜你喜欢
  • 2021-11-02
  • 2022-12-23
  • 2021-11-25
  • 2021-06-26
  • 2022-12-23
相关资源
相似解决方案