图解算法第二张:选择排序(列表与链表)

博客介绍了计算机内存工作原理,将其比作有对应地址的抽屉。还对比了数组和链表,指出数组元素集中、类型需相同,读取快;链表元素分散,插入和删除快。此外,讲解了选择排序,其复杂度为O(N^2),通过两次遍历完成排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,内存工作原理

计算机的内存犹如一大堆抽屉,每个空间有对应地址

2,链表与列表及其优劣

存储多个元素可以用数组或链表

2.2,数组元素都在一起,所有元素类型必须相同,而链表是分开的,每个元素都储存了下个元素的地址

2.3,数组的读取速度很快O(1),而链表的插入和删除速度很快O(1)

在这里插入图片描述

3,选择排序

O(N^2)复杂度,两次遍历,一次找到最小,一次加入新数组

# 找出数组中的最小元素
def findSmallest(arr):
  # 存储最小的值
  smallest = arr[0]
  # 存储最小元素的索引
  smallest_index = 0
  for i in range(1, len(arr)):
    if arr[i] < smallest:
      smallest_index = i
      smallest = arr[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,2,7,9,4,19]))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值