zoukankan      html  css  js  c++  java
  • 算法笔记(一):插入排序和线性查找

    之前的版本感觉有点难以理解,重新修改下。

    (一)插入排序

    假如我们打牌时候,将手中的牌从左到右按顺序排列(例如:1、2、5、7、8)

     这时抽到一张新牌3,从右到左和手上的牌进行比较,然后插入到2的后面(1、2、3、5、7、8),3后面的牌的索引全部+1.

    实现代码:

     1 import numpy as np
     2 
     3 #创建一个ndarray对象
     4 A = np.array([5,2,4,7,6,10,1,3,9])
     5 
     6 #升序排序版本
     7 for j in range(len(A)):
     8     key = A[j]
     9     i = j - 1
    10     while i >= 0 and key < A[i]:
    11         A[i+1] = A[i]
    12         i = i-1
    13     A[i+1] = key
    14 
    15 print(A)
    16 #降序排序版本
    17 for j in range(len(A)):
    18     key = A[j]
    19     i = j - 1
    20     while i >= 0 and key > A[i]:
    21         A[i+1] = A[i]
    22         i = i -1
    23     A[i+1] = key
    24 
    25 print(A)

    (二)线性查找

     1 import numpy as np
     2 
     3 #找到结果,返回索引,否则返回None
     4 def search(array,key):
     5     for j in range(len(array)):
     6         if array[j] == key:
     7             return j
     8     return None
     9 
    10 array = np.array([5,2,4,7,6,10,1,3,9])
    11 key = 10
    12 
    13 print(search(array,key))
  • 相关阅读:
    cmd 一键获取 所有连接过的wifi 密码
    MYSQL注入语句
    Web安全篇之SQL注入攻击
    Kali Linux 不能联网上网 解决方法
    php杂项
    laravel下的数据序列化
    填充数据
    css
    array
    GD库常用函数
  • 原文地址:https://www.cnblogs.com/simple-free/p/9050084.html
Copyright © 2011-2022 走看看