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 time

def 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_list



def 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_list



def 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_list




if __name__ == '__main__':
    num_list = randomnumber_generate(total_num=100, max_num=1000)
    print '---------------------------------------------生成随机排序列表为:------------------------------------------'
    print num_list
    print '------------------------------------------python自带sort函数排序结果为:------------------------------------'
    time_start = time.time()
    result_list = sorted(num_list) 
    time_end = time.time()
    print result_list
    print 'python自带sort函数排序耗时:', time_end - time_start
    print '------------------------------------------min升序排序结果为:----------------------------------------------'
    min_time_start = time.time()
    result_list_min = python_sort_min(num_list) 
    min_time_end = time.time()
    print result_list_min
    print 'min升序排序耗时:', min_time_end - min_time_start
    num_list = randomnumber_generate(total_num=100, max_num=1000)
    print '-----------------------------------------生成随机排序列表为:----------------------------------------------'
    print num_list
    print '----------------------------------------max降序排序结果为:------------------------------------------------'
    max_time_start = time.time()
    result_list_max = python_sort_max(num_list)
    max_time_end = time.time() 
    print result_list_max
    print '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