图解算法 第2章—选择排序

本章内容

  • 两种最基本的数据结构--数组和链表
  • 学习排序算法,很多算法仅在数据是有序的才有用,参照二分查找


数组和链表(精确到具体的地址之后的执行)

内存的工作原理-就像蜂巢的存储柜一样,例如feoffeeb就是内存的地址。有两种基本的存储方式数组和链表。下面我们来看看他们的定义,以及优缺点。

数组

他是按照地址有序排列,优点:可以通过索引快速读取(元素的位置称为索引)。缺点:在插入和删除时,会改动数据后面的索引。

链表

每个元素都存储下一个元素地址,从而使一系列内存地址串联在一起。优点:插入和删除只需要改变当前元素地址。缺点:读取时遍历所有内容


排序算法-选择排序

要求:数组元素从小到大排序

一:找出最小元素

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

二:插入新的列表(pop提取并删除)

def selectionSort(arr):
	newArr = []
	for i in range(1,len(arr)):
		smallest = findSmallest(arr)
		newArr.append(arr.pop(smallest))
	return newArr
print(selectionSort([5,3,6,2,10]))

Tips:同一组数组,元素类型要相同

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值