最近一直在学习算法方面的知识,其实不得不说要学的要懂得还是有很多很多的,尤其是数据结构这一部分的内容,几乎已经把在学校学的东西都如数还给老师了,基础很重要,知其然更要知其所以然,不然很难有大的进步,即使你完成了任务做完了工作,但是建立在不牢靠的基础上的代码是经不起考验的,前面已经写了几篇关于排序算法的博文了,在这里突然想到了一个工具,就是我直接使用python自带的min函数和max函数来进行排序,当然python自带的有原生态的sort函数,本身就可以实现排序的功能,简单的升序排序只需要使用到python内置的全局sorted()方法,产生一个有序的数组但是不会对列表本身的元素改变,也可以调用python的list内置的sort()方法,这样也可以产生相同的升序排序的结果,但是是对list本身操作的,改变了list本身。list.sort()和sorted()都接受一个参数reverse(True or False)来表示升序或降序排序。

sorted函数用法如下: 

sorted(data, cmp=None, key=None, reverse=False)

从python2.4开始,list.sort()和sorted()函数增加了key参数来指定一个函数,此函数将在每个元素比较前被调用。 例如通过key指定的函数来忽略字符串的大小写:key参数的值为一个函数,此函数只有一个参数且返回一个值用来进行比较。这个技术是快速的因为key指定的函数将准确地对每个元素调用。

    好了,这里不在累赘了,直接看代码:


#! /usr/bin/env python
#coding=utf-8'''
功能:使用python原生态的min和max函数实现升序排序和降序排序
'''import random
import math
import timedef randomnumber_generate(total_num=100, max_num=1000): '''random随机数生成random.random()用于生成一个0到1之间的随机数:0 <= n < 1.0;random.uniform(a, b),用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。min(a,b) <= n <= max(a,b);randdom.randint(a, b), 用于生成一个指定范围内的整数,其中a是下限,b是上限: a<= n <= b;random.randrange(start, stop, step), 从指定范围内,按指定基数递增的集合获取一个随机数;random.choice(sequence), 从序列中获取一个随机元素;random.shuffle(x), 用于将一个列表中的元素打乱;random.sample(sequence, k), 从指定序列中随机获取指定长度的片断;'''num_list = []for i in range(total_num):num_list.append(random.randint(0,max_num))return num_listdef python_sort_min(num_list):result_list = []while num_list:min_num = min(num_list)min_num_index = num_list.index(min_num)result_list.append(num_list.pop(min_num_index))return result_listdef python_sort_max(num_list):result_list = []while num_list:max_num = max(num_list)max_num_index = num_list.index(max_num)result_list.append(num_list.pop(max_num_index))return result_listif __name__ == '__main__':num_list = randomnumber_generate(total_num=100, max_num=1000)print '---------------------------------------------生成随机排序列表为:------------------------------------------'print num_listprint '------------------------------------------python自带sort函数排序结果为:------------------------------------'time_start = time.time()result_list = sorted(num_list) time_end = time.time()print result_listprint 'python自带sort函数排序耗时:', time_end - time_startprint '------------------------------------------min升序排序结果为:----------------------------------------------'min_time_start = time.time()result_list_min = python_sort_min(num_list) min_time_end = time.time()print result_list_minprint 'min升序排序耗时:', min_time_end - min_time_startnum_list = randomnumber_generate(total_num=100, max_num=1000)print '-----------------------------------------生成随机排序列表为:----------------------------------------------'print num_listprint '----------------------------------------max降序排序结果为:------------------------------------------------'max_time_start = time.time()result_list_max = python_sort_max(num_list)max_time_end = time.time() print result_list_maxprint 'max降序排序耗时:', max_time_end - max_time_start

结果为:

---------------------------------------------生成随机排序列表为:------------------------------------------
[511, 123, 412, 206, 824, 772, 409, 702, 360, 54, 668, 253, 371, 372, 329, 957, 246, 147, 84, 240, 836, 471, 407, 363, 658, 102, 555, 839, 398, 0, 85, 817, 652, 544, 959, 761, 157, 27, 397, 997, 291, 725, 861, 696, 857, 172, 903, 115, 831, 552, 944, 200, 350, 21, 872, 586, 227, 989, 221, 591, 422, 982, 34, 218, 1, 220, 993, 899, 902, 248, 827, 512, 44, 720, 618, 794, 729, 476, 242, 775, 229, 119, 62, 634, 952, 392, 271, 464, 992, 134, 242, 404, 684, 544, 764, 330, 451, 42, 956, 240]
------------------------------------------python自带sort函数排序结果为:------------------------------------
[0, 1, 21, 27, 34, 42, 44, 54, 62, 84, 85, 102, 115, 119, 123, 134, 147, 157, 172, 200, 206, 218, 220, 221, 227, 229, 240, 240, 242, 242, 246, 248, 253, 271, 291, 329, 330, 350, 360, 363, 371, 372, 392, 397, 398, 404, 407, 409, 412, 422, 451, 464, 471, 476, 511, 512, 544, 544, 552, 555, 586, 591, 618, 634, 652, 658, 668, 684, 696, 702, 720, 725, 729, 761, 764, 772, 775, 794, 817, 824, 827, 831, 836, 839, 857, 861, 872, 899, 902, 903, 944, 952, 956, 957, 959, 982, 989, 992, 993, 997]
python自带sort函数排序耗时: 2.19345092773e-05
------------------------------------------min升序排序结果为:----------------------------------------------
[0, 1, 21, 27, 34, 42, 44, 54, 62, 84, 85, 102, 115, 119, 123, 134, 147, 157, 172, 200, 206, 218, 220, 221, 227, 229, 240, 240, 242, 242, 246, 248, 253, 271, 291, 329, 330, 350, 360, 363, 371, 372, 392, 397, 398, 404, 407, 409, 412, 422, 451, 464, 471, 476, 511, 512, 544, 544, 552, 555, 586, 591, 618, 634, 652, 658, 668, 684, 696, 702, 720, 725, 729, 761, 764, 772, 775, 794, 817, 824, 827, 831, 836, 839, 857, 861, 872, 899, 902, 903, 944, 952, 956, 957, 959, 982, 989, 992, 993, 997]
min升序排序耗时: 0.000277042388916
-----------------------------------------生成随机排序列表为:----------------------------------------------
[545, 189, 156, 529, 52, 846, 830, 454, 933, 380, 6, 856, 143, 826, 260, 895, 255, 248, 2, 474, 546, 512, 780, 491, 59, 277, 882, 236, 854, 175, 789, 990, 589, 341, 122, 813, 535, 753, 460, 297, 154, 799, 613, 378, 135, 717, 507, 338, 808, 867, 470, 467, 770, 564, 940, 560, 298, 660, 353, 104, 101, 549, 5, 705, 838, 61, 138, 705, 597, 406, 461, 716, 50, 721, 690, 562, 862, 190, 542, 14, 42, 689, 510, 677, 8, 234, 46, 910, 848, 400, 718, 838, 194, 891, 550, 877, 769, 401, 359, 411]
----------------------------------------max降序排序结果为:------------------------------------------------
[990, 940, 933, 910, 895, 891, 882, 877, 867, 862, 856, 854, 848, 846, 838, 838, 830, 826, 813, 808, 799, 789, 780, 770, 769, 753, 721, 718, 717, 716, 705, 705, 690, 689, 677, 660, 613, 597, 589, 564, 562, 560, 550, 549, 546, 545, 542, 535, 529, 512, 510, 507, 491, 474, 470, 467, 461, 460, 454, 411, 406, 401, 400, 380, 378, 359, 353, 341, 338, 298, 297, 277, 260, 255, 248, 236, 234, 194, 190, 189, 175, 156, 154, 143, 138, 135, 122, 104, 101, 61, 59, 52, 50, 46, 42, 14, 8, 6, 5, 2]
max降序排序耗时: 0.000324010848999

使用python原生态的min和max函数实现升序排序和降序排序相关推荐

  1. c语言指针和函数对数组A升序排序,函数指针作为函数參数,实现冒泡排序的升序排序和降序排序...

    #include #define N 10//定义数组元素个数 int Ascending(int a,int b);//升序排列的函数声明 int Descending(int a,int b);/ ...

  2. MIN()与MAX()函数 的注意事项

    MIN()与MAX()函数 的注意事项 定义: MIN()函数用于返回一个列范围内的最小非空值:MAX()函数用于返回最大值.这两个函数可以用于大多数的数据类型,返回的值根据对不同数据类型的排  序规 ...

  3. 【博客117】内核如何巧妙实现:min与max函数

    内容: 记录一下看了linux内核的min,max函数的实现,非常的巧妙且精细,分享一下 #define min(x, y) ({ \typeof(x) _min1 = (x); \typeof(y) ...

  4. MYSQL 数据库基础(三 流程函数的学习,多行函数相当于统计计算等等、group by的使用、goup by衍生出的having、排序关键字order by、升序ASC、降序DESC、模糊查询等)

    流程函数 类似与java中的判断情况 的学习 实际应用: -- 满足条件执行 第一个逗号后面的 否则执行第二个逗号 SELECT ename,sal,IF(sal<2500,'低于2500',' ...

  5. python英文单词及其出现次数-Python读取英文文件并记录每个单词出现次数后降序输出示例...

    本文实例讲述了Python读取英文文件并记录每个单词出现次数后降序输出.分享给大家供大家参考,具体如下: 对文中出现的句号,逗号和感叹号做了相应的处理 sorted排序函数用法: 按照value值降序 ...

  6. python升序和降序排序_python中序列的排序,包括字典排序、列表排序、升序、降序、逆序...

    一.基础概念 我们知道python中的内建序列包括字典.列表.元组.字符串等,序列是python中最基本的数据结构. 列表.元组.字符串这类的序列的索引默认第一个元素的索引从0开始,第二个元素的索引是 ...

  7. Python对IP地址列表排序、对列表进行去重、IP地址与MAC地址组合的多个元组的列表排序,对列表内的元组升序和降序排序

    1.python对IP地址列表排序 # -*- coding: utf-8 -*-import socket listIP = ['10.5.11.1', '192.168.1.33', '10.5. ...

  8. python升序和降序排序sort_【python】 sort、sorted高级排序技巧

    这篇文章主要介绍了Python中列表(List)的详解操作方法,包含创建.访问.更新.删除.其它操作等,需要的朋友可以参考下 Python list内置sort()方法用来排序,也可以用python内 ...

  9. python怎么升序和降序排序?

    python怎么升序和降序排序 推荐:<python视频教程> 1.首先打开cmd命令提示符,输入指令"ipython"打开python的命令行工具: 2.在命令行中先 ...

  10. python怎么升序和降序排序

    python怎么升序和降序排序 1.首先打开cmd命令提示符,输入指令"ipython"打开python的命令行工具: 2.在命令行中先定义一个变量number数组,里面写入几个数 ...

最新文章

  1. python pip指令_python 常用 pip 命令合集
  2. torchtext语料库 词与 下标互转使用教程
  3. make: Nothing to be done for `first'
  4. php生成vcf,详解PHP如何实现生成vcf vcard文件
  5. vs里面mfc是什么_最近!一大批人正在前往文安,究竟发生了什么?
  6. C# 热敏打印机 Socket 网络链接 打印 图片 (二)
  7. [react] React中你有使用过getDefaultProps吗?它有什么作用?
  8. 云计算学习笔记003---Hadoop简介,hadoop实现原理,NoSQL介绍...与传统关系型数据库对应关系,云计算面临的挑战
  9. one邮箱服务器端口,oneinstack 设置远程访问,将端口对外开放
  10. 读书笔记《了解用户系列六 | 群体用户心理》文/产品100(简书作者)
  11. pypy mysql 兼容_PyPy运行Django+MySQL简单教程
  12. 网站百度快速排名软件系统
  13. ubtuntu error:E45:‘readonly’ option is set(add ! to override
  14. 不懂Web基本原理怎么能学好爬虫。( 二、Web服务器工作原理)(爬虫、反爬虫、服务器、客户端、网络协议 )
  15. 傻傻分不清楚?深入探讨 filter 与 backdrop-filter 的异同
  16. windows server2008 部署项目环境总结
  17. 神奇英语语法系列(1)——定语从句
  18. DeFi+NFT出圈姿势盘点,NFT借贷等应用领域值得关注
  19. 毕业设计 基于单片机的数字出租车计价器
  20. android 各个存储、储存路径及获取方法总结

热门文章

  1. Angular4+ 页面切换 显示进度条
  2. oracle_dblink配置
  3. FMDB在Swift中的基本使用
  4. 利用ESXI-Customizer制作定制化的ESXI
  5. [UE4]关于分支Sequence和条件分支的组合用法
  6. ZooKeeper 初体验
  7. Python学习笔记_Day4_集合
  8. Mysql5.7双主安装与使用
  9. 第一次工作面试(蘑菇街)
  10. .NET后台输出js脚本的方法