Rumah  >  Artikel  >  pembangunan bahagian belakang  >  冒泡排序有哪2种写法,用冒泡排序对10个数进行排列

冒泡排序有哪2种写法,用冒泡排序对10个数进行排列

Tomorin
Tomorinasal
2018-08-17 14:46:235293semak imbas

可以采用冒泡排序,每次把相邻的两个比较大小,然后把大一点儿的数据放在最后面,这样第一趟下来,最大的那个数就跑到了最后面,下一次排序就不用跟最后一个数字比较了,然后倒数第二大的数字会在倒数第二...因此可以使用两个函数,一个用于控制每一趟比较的元素个数,一个用于交换:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 if __name__ == "__main__":    N = 10
    # input data
    print '请输入10个数字:\n'
    l = []
    for i in range(N):        
          l.append(int(raw_input('输入一个数字:\n')))
    print
    for i in range(N):        
          print l[i]
    print
 
    # 排列10个数字
    for i in range(N - 1):
           min = i
        for j in range(i + 1,N):        
             if l[min] > l[j]:min = j
        l[i],l[min] = l[min],l[i]
    print '排列之后:'
    for i in range(N):   
        print l[i]

以上实例输出结果为:

请输入10个数字:
输入一个数字:5
输入一个数字:3
输入一个数字:23
输入一个数字:67
输入一个数字:2
输入一个数字:56
输入一个数字:45
输入一个数字:98
输入一个数字:239
输入一个数字:9
5
3
23
67
2
56
45
98
239
9

排列之后:
2
3
5
9
23
45
56
67
98
239


Atas ialah kandungan terperinci 冒泡排序有哪2种写法,用冒泡排序对10个数进行排列. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn