编程语言
首页 > 编程语言> > 《算法图解》第二章 选择排序

《算法图解》第二章 选择排序

作者:互联网

 

 1、数组

  ①数组元素是连在一起的。

  ②同一个数组中,元素的类型都必须相同(都为int、double等)。

  ③支持随机访问,因此读取速度更快。

 

2、链表

  ①链表元素是分开的,每个元素都存储下一个元素的地址。

  ②仅支持顺序访问,但擅长于插入和删除操作(只需修改前一个元素指向地址)。

 

3、快速排序DEMO

# 查找最小元素索引
def findSmallest(arr):
    # 存储最小的值
    smallest =arr[0]
    # 存储最小元素的索引
    smallest_index=0

    for i in range(1,len(arr)):
        if arr[i]<smallest:
            smallest=arr[i]
            smallest_index=i
    return smallest_index

# 对数组排序
def selectionSort(arr):
    newArr=[]
    # 找出最小的元素并添加植新数组中
    for i in range(len(arr)):
        smallest = findSmallest(arr)
        newArr.append(arr.pop(smallest))
    return newArr

print(selectionSort([5,3,2,10]))

 

 课后练习

 

          

 

  

 

答案:

2.1 链表

2.2 链表,可以支持加急单和取消订单

2.3 数组,需求是随机访问

2.4 中间插入数据时需要考虑空间是否足够和将已有数据从后往前向后移动,所需时间较长;如果只是添加数据则添加最后耗时短。

2.5 更快

 

 

 

标签:arr,排序,元素,存储,链表,smallest,数组,第二章,图解
来源: https://www.cnblogs.com/annuush/p/15340221.html