排序 0

来源:互联网 发布:祛痘产品淘宝 编辑:程序博客网 时间:2024/06/15 06:16

学习排序的基本概念和评判标准

学习多种排序算法

利用 python 2.x 语言实现


百度百科:排序算法

排序:对一个序列,按照数字的大小,进行递增或者递减的排列的操作

评判标准包括 稳定性时间复杂度空间复杂度


稳定性

如果序列中同样大小的元素的相对位置在排序过后仍旧保持不变,则该排序算法是稳定的。

比如,原始序列为 (3,1) (2,2) (3,3) (1,4)括号内第一个元素表示值,第二个表示下标

排序过后有两种可能结果

  • (1,4) (2,2) (3,1) (3,3),则该排序算法是稳定的;
  • (1,4) (2,2) (3,3) (3,1),则该排序算法是不稳定的

时间复杂度

百度百科:时间复杂度

时间复杂度指执行算法所需的计算工作量

时间复杂度是一个函数,它定性的描述该算法的运行时间,常用 O 符号表示,它考察当输入大小趋近无穷大时的情况

一般情况下,算法中基本操作重复执行的次数是问题规模 n 的某个函数,用 T(n) 表示,若有某个辅助函数 f(n),使得当 n 趋近于无穷大时,T(n)/f(n) 的极限值为不等于零的常数,则称 f(n)T(n) 的同数量级函数。记作 T(n)=O(f(n)),称 O(f(n)) 为算法的渐进时间复杂度,简称时间复杂度。

分析:随着模块 n 的增大,算法执行的时间的增长率和 f(n) 的增长率成正比,所以 f(n) 越小,算法的时间复杂度越低,算法的效率越高。

在计算时间复杂度的时候,先找出算法的基本操作,然后根据相应的各语句确定它的执行次数,再找出 T(n) 的同数量级(它的同数量级有以下:1lognnnlognn 的平方n 的三次方2 的 n 次方n!),找出后,f(n) = 该数量级,若 T(n)/f(n) 求极限可得到一常数 c,则时间复杂度 T(n) = O(f(n))

比如函数如下所示:

def test(n):    for i in xrange(n):        for j in xrange(n):            print i*j            for k in xrange(n):                print i*j*k

针对当前函数 test,基本操作为 print i*jprint i*j*kT(n) = n^2+n^3,其同数量级为 n^3,所以 f(n) = n^3,该函数的时间复杂度 T(n)=O(n^3)

Note:

  • 一重 for 循环,时间复杂度为 O(n)
  • 二重 for 循环,时间复杂度为 O(n^2)
  • mfor 循环,时间复杂度度为 O(n^m)
  • 二分操作的时间复杂度为 O(logn)
  • 一个 for 循环嵌套一个二分操作,则时间复杂度为 O(nlogn)

空间复杂度

百度百科:空间复杂度

一个算法在计算机存储器上所占用的存储空间包括三个方面:

  • 存储算法本身所占用的存储空间
  • 算法的输入输出数据所占用的存储空间
  • 算法在运行过程中临时占用的存储空间

空间复杂度指算法在运行过程中临时占用存储空间大小的量度,记做 S(n)=O(f(n))


实现排序算法如下:

  1. 选择排序(selection sort
  2. 插入排序(insert sort
  3. 折半插入排序(binary insert sort
  4. 冒泡排序(bubble sort
  5. 快速排序(quick sort
  6. 归并排序(merge sort
  7. 希尔排序(shell sort
  8. 基数排序(radix sort
  9. 堆排序(heap sort
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 幼儿园报名写错怎么办名字 中考写错了字怎么办 头发没干想睡觉怎么办 突然天旋地转恶心想吐怎么办 突然天旋地转的浑身出汗怎么办 3岁半不认识数字怎么办 孩子长倒睫毛该怎么办 一年级的孩子口算慢怎么办? 大班社会领域怎么办教学反思 表带活动圈坏了怎么办 手表固针h掉了怎么办 cad图全部倒过来了怎么办 电脑打数字变粗怎么办 wps表格输入数字变乱码怎么办 文档中光标变粗怎么办 wps排序有重复的怎么办 记英语数字老是混怎么办 苹果手机输入法出数字怎么办 word文档复制过来有底色怎么办 表格复制后还再显示复制符号怎么办 笔记本字母键打出数字怎么办 wps打字字上移了怎么办 微信里黑圈里面的白字是怎么办 脖子比脸黑好多怎么办 河南许昌小学生生病办休学怎么办 1岁宝宝内向胆小怎么办 3岁宝宝内向胆小怎么办 数学物理好不喜欢学医怎么办 孩子眉毛太浓了怎么办 小娃一年级成绩太差怎么办 孩子晚上睡得晚怎么办 在深圳买房难小孩读书怎么办 上海小孩读书积分不够怎么办 读书时静不下心怎么办 初中生静不下心读书怎么办 孩子学习静不下心怎么办 退烧后体温35度怎么办 孩子体温34度多怎么办 宝宝感冒咳嗽流鼻涕出汗怎么办 养的小鸡总打架怎么办 小鸡一条腿瘸了怎么办