美文网首页
算法图解-选择排序

算法图解-选择排序

作者: YCzhao | 来源:发表于2018-10-25 15:19 被阅读0次

1. 链表
- 链表中的元素可存储在内存的任何地方。而数组的元素都在一起
- 链表的每个元素都存储了下一个元素的地址,从而使一系列随机的内存地址串在一
起。

链表元素在内存中的存储.png
2. 链表和数组的区别
- 需要同时读取所有元素时,链表的效率很高
- 需要随机地读取元素时,数组的效率很高,因为可迅速找到数组的任何元素

3. 下图是常见数组和链表操作的运行时间

image.png

4. 选择排序

#  将数组元素按从小到大的顺序排列。先编写一个用于找出数组中最小元素的函数
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

# 利用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]))

相关文章

  • 2018-05-10

    算法图解 p28 选择排序

  • 数据结构

    Q:堆排序 A:1 堆排序算法(图解详细流程)2 堆排序 Q:排序算法时间复杂度与稳定性 选择排序为什么不稳定:举...

  • 算法图解-选择排序

    1. 链表- 链表中的元素可存储在内存的任何地方。而数组的元素都在一起- 链表的每个元素都存储了下一个元素的地址,...

  • iOS实现冒泡排序、快速排序、选择排序、希尔排序、插入排序等算法

    1、冒泡排序 图解: 2、选择排序 图解: 3、快速排序 图解: 4、插入排序 图解: 5、希尔排序 图解: 6、...

  • N^2排序算法总结.md

    选择排序 算法的图解 算法的基本实现 根据上面的gif图可以得到,实现选择排序需要两个步骤 找到第i个元素后的最小...

  • Schedule

    WeekComputer Science算法图解剑指offer神经网络1Data Manipulation选择排序...

  • 算法-选择排序

    算 法:选择排序算法时间复杂度: 选择排序算法概述 选择排序伪代码 选择排序实现 选择排序算法概述 排序算法有许...

  • 排序算法

    上周发了一些图解排序的文章,是最近学习算法的总结,希望对你有启发。下周继续,还有5个排序算法。 1. [图解排序 ...

  • 《算法图解》笔记——选择排序

    数组和链表 数组链表读取O(1)O(n)插入O(n)O(1)删除O(n)O(1) (仅当能够立即访问到要删除的元素...

  • 排序算法(二)之希尔排序

    图解排序算法(二)之希尔排序 希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也...

网友评论

      本文标题:算法图解-选择排序

      本文链接:https://www.haomeiwen.com/subject/zlxctqtx.html