JSON

list、冒泡、二分法

字号+ 作者:H5之家 来源:H5之家 2017-04-30 18:03 我要评论( )

1.遍历第一次,寻找最大值,并且记录最大值的索引max_index2.list(dict,str)伪代码:if(是不是有饭吃):如果是真 执行 (缩进)else:如果是假 执行写代码学习

1.遍历第一次,寻找最大值,并且记录最大值的索引max_index
2.list(dict,str)

伪代码: if(是不是有饭吃): 如果是真 执行 (缩进) else: 如果是假 执行 写代码学习过程 1.用草稿纸画一下思路 2.把草稿纸上的内容,写成伪代码 3.伪代码翻译成代码 list list是有顺序的 表示方法: [] dict dict没有顺序 { 'name':'reboot' } list的特点:
  • 有序
  • 通过索引获取值:列表[索引]
  • 两个Python内置函数: len(列表) 返回列表的长度 max() 最大值 min() 最小值 关于变量名:
  • 不可以是list,len,max,min,del
  • 删除列表元素:
  • del删除元素(根据索引)
  • list: 获取,删除,修改(直接赋值)
  • 冒泡排序:
  • 冒泡排序是一种典型的通过交换元素消除逆序的排序方法,是一种最简单的方法。
  • 思路:

    (1) 每一遍检查将一个最大的元素交换到最后的位置,一些较大元素向右移动,前一个for循环控制第一层元素,从0到7,即range(len(lst)),第二个for循环从1到range(1,len(lst)-i)遍历。 (2)从左到右比较相邻元素,前一个元素较小就交换。 (3)如果原始待排序序列本身有序,可以提前退出排序,设置flag标志,为 true时,退出循环。

    例:

    两种思路实现冒泡算法: 第一种: arr=[3,6,2,5,1,32,4,7,33,99] for i in range(len(arr)): for j in range(len(arr)): if arr[j] >arr[i]: arr[j], arr[i] = arr[i], arr[j] print arr 第二种: arr=[3,6,2,5,1,32,4,7,33,99] for i in range(1,len(arr)+1): for j in range(len(arr)-1): if arr[j] > arr[j+1]: arr[j], arr[j+1] = arr[j+1], arr[j] print arr 第二种方法改进,加入flag标志: arr = [3,6,2,5,1,32,4,7,33,99] for i in range(1,len(arr)+1): flag = True # 插入变量flag,来发现该list是否有序. for j in range(len(arr)-1): if arr[j] > arr[j+1]: arr[j], arr[j+1] = arr[j+1], arr[j] flag = False if flag: # 列表本来有序,故退出. break print arr

    冒泡排序的特点:

    复杂度 O(n^2) 稳定性 切片:
  • 切片功能强大,可读性差
  • 切片的原则:起点按照切片的方向上,找到重点
  • list的几个功能: dict和json的区别

    dict: 在python里是一种具体的数据结构
    json: 是一种数据交换格式(标准)

    二分法思想:一个排好序的list中,查找一个特定的值.

    原理:每次都取一个middle值,与start值与end值作比较,直至取出最终的值。

    例:

    # arr = [1, 2, 3, 5, 23, 43, 65, 87, 90, 111, 232, 345, 2342, 2432, 3453,] arr =range(10000) start = 0 end = len(arr) - 1 res = 345 # 此为要查找的值. count = 0 while True: count += 1 mid = (start + end) / 2 if res < arr[mid]: end = mid elif res > arr[mid]: start = mid else: print mid break print arr[mid], count 列表生成式:

    格式:

    [x for x in 内容] [x for x in 内容 if 条件]

    例:

    date = {"name": "yangbin", "age": 20, "sex": "male"} fields= ["name", "age", "sex"] print "---" print [date[fields] for fields in date]

    爱编程-编程爱好者经验分享平台

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    网友点评
    t