爱分享昂,我又来了。这次是关于使用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)
新学者,不足之处还望各位海涵!