好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Python习题《排序》

爱分享昂,我又来了。这次是关于使用Python对数进行排序的方法,如果我们之前学过C(我先前只学过C,哈哈),肯定知道快速排序,以及冒泡排序法。下面就对这两个方法进行介绍。

题目:将列表中的数字进行从小到大排序。List=[4,9,7,6,8,3,5,1,11,2]

大家最熟悉的方法肯定是挨个比较,然后找出最小的放到最前面,其他数字依次如此。

1、冒泡排序

先介绍冒泡排序好了。我们的基础思想是从最后一个往前比较,每有比最后一个数大的俩数就交换位置,然后该数继续与它目前所在位置的前一个数再进行比较;

若出现比它小的数,那就不交换位置,并用这小的数与前面第二个数相比较,如此下去一直比较到第一个个数。

例如题列表中最后一个数“2”,先是与“11”进行比较,发现比它大,“2”和“11”交换位置,现在列表就变成List=[4,9,7,6,8,3,5,1,2,11]。再与它前一个数”1“进行比较,发现比它小,则不交换位置,也就是说这一步列表没变依旧是List=[4,9,7,6,8,3,5,1,2,11]。然后数字“1”再与前第二个数“5”进行比较,发现比它大,则俩数交换位置,现在列表就变了List=[4,9,7,6,8,3,1,5,2,11],照此步骤下去完成一轮后列表为List=[1, 4, 9, 7, 6, 8, 3, 5, 2, 11],第二轮列表List=[1, 2, 4, 9, 7, 6, 8, 3, 5, 11],依次类推即可得出结果:

(seq):
    n = (seq)
    i (n-):
        j (n-i-):
            seq[j]<seq[j-]:
                seq[j]seq[j-]=seq[j-]seq[j]
    seq
():
    list=[]
    (bb(list))
main()

2、快速排序

在快速排序中,我们的基本思想是从两端向中间开始相互比较,把小的数放到前边,大的数放到后边。

例如题中列表List=[4,9,7,6,8,3,5,1,11,2],经过一次比较后,即第一个数字“4”跟最后一个数字“2”比较,明显“4”>“2”,因此变换过后列表List=[2,9,7,6,8,3,5,1,11,4]

(seqmn):
    i=m
    j=n
    m<n:
        tmp=seq[m]
        i != j:
            j > i seq[j] >= tmp:
                j -= seq[i]=seq[j]
            i < j seq[i] <=tmp:
                i += seq[j]=seq[i]
            (seq)
        seq[i] = tmp
        kp(seqmi-)
        kp(seqi+n)
():
    list=[]
    kp(list(list)-)
    (list)

新学者,不足之处还望各位海涵!

查看更多关于Python习题《排序》的详细内容...

  阅读:40次