前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第2章 选择排序

第2章 选择排序

作者头像
村雨遥
发布2019-11-14 17:14:46
2940
发布2019-11-14 17:14:46
举报
文章被收录于专栏:JavaParkJavaParkJavaPark

数组与链表

链表

链表每个元素都存储了下一元素的地址,所以可以使用随机内存地址串在一起,只要有足够的内存空间,就可以为链表分配内存;

常见数组和链表操作的运行时间

其中,为线性时间,为常量时间;

两种访问方式:随机访问和顺序访问;
  • 顺序访问:从第一个元素开始逐个读取元素,链表只支持顺序访问;
  • 随机访问:可以直接访问某一元素,速度很快,数组常用;

链表擅长插入和删除元素,而数组则擅长随机访问;

选择排序

  • 代码
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Time    : 2019-11-3 23:24
# @Author  : cunyu
# @Email   : cunyu1024@foxmail.com
# @Site    : https://cunyu1943.github.io
# @File    : selectionSort.py
# @Software: PyCharm
# @Desc    : 选择排序

# 查找列表最小元素
def findSmallest(List):
  # 最小元素的值
  smallest = List[0]
  # 最小元素的值的索引
  smallest_index = 0
  for i in range(1, len(List)):
    if List[i] < smallest:
      smallest = List[i]
      smallest_index = i
  return smallest_index

# 选择排序
def selectionSort(List):
    newList = []
    for i in range(len(List)):
      smallest = findSmallest(List)
      newList.append(List.pop(smallest))
    return newList

if __name__ == '__main__':

    List = [1, 9, 11, 43, 3, 7, 5]
    print("排序后的列表:")
    print(selectionSort(List))

小结

  • 存储多个元素时,可使用数组或链表;
  • 数组元素是存在一起的;
  • 链表元素是分开的,其中每个元素都存储了下一个元素的地址;
  • 数组的读取速度很快;
  • 链表的插入和删除速度很快;
  • 同一数组中,所有元素类型必须相同;
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 村雨遥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数组与链表
    • 链表
      • 常见数组和链表操作的运行时间
        • 两种访问方式:随机访问和顺序访问;
        • 选择排序
        • 小结
        相关产品与服务
        对象存储
        对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档