算法基础_数组、链表、选择排序

摘要:数组、链表的原理、优缺点,算法2:选择排序

1、说说内存的工作原理?
(1)内存:就像很多抽屉的集合体,每个抽屉都有地址,fe0ffeeb是一个内存单元的地址
(2)将数据存储到内存时,请求计算机提供空间,计算机给你一个存储地址。需要存储多项数据时,有两种存储方式:数组、链表。

2、说说数组的原理?
4个人去看电影,以数组的形式将4个人存储在座位上。要求:4个人必须连着,如果再来一个人,就得重新找有5个连着的空位。当然,你可以预留10个位置。但超过10人,你还得找位置。

3、链表的原理?
第一人知道第二人的位置,第二人知道第三人的位置,依次类推。可存在内存的任何位置,插入元素非常方便。

4、数组、链表的优缺点?
(1)数组存储方式:可以高效率的读取元素。链表存储方式:可以高效率的插入、删除元素
如果你找最后一个元素,链表你得一个一个,一直找到最后一个。数组找到第一个,直接就跳到最后一个了
(2)数组用的多,它支持随机访问。很多情况都要求能够随机访问。

5、算法2:选择排序
(1)第一种(从小到大):

# 感谢某某大佬,学习到了
def sort_list(list):
    for i in range(len(list)-1):
        min_sub = i
        for n in range(len(list) -i):
            if list[min_sub] > list[n+i]:
                min_sub = n+i
        list[i], list[min_sub] = list[min_sub], list[i]
    return list

if __name__ == '__main__':
    a = sort_list([23, 5, 0, 78, 56, 55, 77, 8, 2])
    print(a)

(2)第二种(从小到大):

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

a = selectionSort([2, 3, 6, 5, 10])
print(a)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿_焦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值