笔记摘自《算法图解》

数组用得很多因为它支持随机访问。有两种访问方式:随机访问和顺序访问。数组的读取速度更快因为它们支持随机访问。

选择排序

先编写一个用于找出数组中最小元素的函数:

  1. def findSmallest(arr):
  2. smallest = arr[0]
  3. smallest_index = 0
  4. for i in range(1, len(arr)):
  5. if arr[i] < smallest:
  6. smallest = arr[i]
  7. smallest_index = i
  8. return smallest_index

根据findSmallest()这个函数来编写选择排序算法:

def selectionSort(arr):
    newArr = []
    for i in range(len(arr)):
        smallest = findSmallest(arr)
        newArr.append(arr.pop(smallest))
    return newArr

print selectionSort([5, 3, 6, 2, 10]) // [2, 3, 5, 6, 10]
  • 数组的读取速度很快。
  • 链表的拆入和删除速度很快。
  • 在同一个数组中,所有元素的类型都必须相同。