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))
  • 相关阅读:
    Grep案例(本地模式)
    Java环境变量 和 Hadoop环境变量 配置
    sudo设置
    Linux配置
    mysql安装(前提:Linux最小化安装)
    test
    Floyd算法【最短路1】
    HttpClient调用接口发送文件
    Spring boot 论坛项目实战_07
    Spring boot 论坛项目实战_06
  • 原文地址:https://www.cnblogs.com/simple-free/p/9050084.html
Copyright © 2011-2022 走看看