python 冒泡排序例子集合(个人练习,温故而知新)

  • 字符串的字母从小到大冒泡排序
s = "hdjdopanndfyazgbz"
list01 = list(s)  #字符串转成列表
#接下来是列表的冒泡排序
for i in range(len(list01)-1):   #为什么此处会减去1?   注释:此处-1,是因为循环到最后一次时,前面都已经排序完毕,不需要再去循环;
#备注一下:range是从0开始计数,实际上遍历的次数为len(list01)-1次,因为range为前包后不包;  所以range(len(list01))和len(list01)长度上是一样的,所以此处的-1不是因为这个原因。
      for j in range(len(list01)-1-i):   #此处为什么此处会减去1?为何减去i?
      #-1 注释:之所以-1,是因为下面的比较语句j+1,会出现越界;
      #-i 注释:这个for 是比较的次数,两两进行比较,大的换到了最后面,小的换到了前面,那么交换过了的,大的一定是在最后面的,所以就不需要再去后边进行比较了。
            if list01[j] > list01[j+1]: 
                list01[j], list01[j+1] > list01[j+1], list01[j]
 #输出列表的冒泡排序
 print(list01)
 #输出字符串的冒泡排序
 str = ''.join(list01) #列表转成字符串
 print(str)
  • 列表中字符串的长度,从小到大冒泡排序
list02 = ['dii', 'eowojsns', 'ueueu', 'iwjsjdjn', 'a', 'dujejenebisis']
for i in range(len(list02)-1):
    for j in range(len(list02)-1-i):
          if len(list02[j]) > len(list02[j+1]):  #len()元素的长度
          	  list02[j], list02[j+1] = list02[j+1], list02[j]
print(list02)
  • 随机生成0~100之间的10个数,从小到大冒泡排序
import random
number = range(0, 101)
numbers = random.sample(number, 10) #序列的形式输出,每个元素都是单独的元素
for i in range(len(numbers)-1):
    for j in range(len(numbers)-1-i):
        if numbers[j] > numbers[j+1]:
           	numbers[j], numbers[j+1] = numbers[j+1], numbers[j]
print(numbers)
  • 字典通过value从小冒泡排序
L = {'李华': 98, '张三': 345, '李四': 659, '王五': 110, '赵六': 359, '甲': 160, '乙': 368, '丙': 580}
ll = list(L.items()) #字典转成列表
for i in range(len(ll)-1):
    for j in range(len(ll)-1-i):
        if ll[j][-1] > ll[j+1][-1]: #元组的value进行排序
            ll[j], ll[j+1] = ll[j+1], ll[j]
print(ll) #输出列表的排序
LL = dict(ll)  #列表转成字典排序
print(LL)  #输出字典的排序
  • 列表的数字从小到大冒泡排序
nums = [1, 3, 5, 7, 8, 9, 5, 4, 3, 2, 4]
for i in range(len(nums)-1):
    for j in range(len(nums)-1-i):
        if nums[j] > nums[j+1]:
            nums[j], nums[j+1] = nums[j+1], nums[j]
print(nums)
  • 键盘输入,从小到大冒泡排序
input_str = list(input("请输入:")) #键盘输入后,转成列表
for i in range(len(input_str)-1):
    for j in range(len(input_str)-1-i):
        if input_str[j] > input_str[j+1]:
            input_str[j], input_str[j+1] = input_str[j+1], input_str[j]
print(input_str)
  • 多种数据结构的列表,从小到大冒泡排序
list1 = [("Sadasfa", 'sdas', 'sdsa2f', 'ss', 'a', 'ffafafsf'), 22, 321, 1, ("aaeqweqw", 'dssqa', 'saew1', 'sda', '2sdgfd'), {'a': 232, 'kbd': 1, 'ww': 221, 'kk': 29, 'kp': {'c': 11, 'pp': 1}}] #我不会!!!再研究一段时间吧!!!!!!!!!没有大佬可以救命!!!

你可能感兴趣的:(笔记,python,排序算法,算法)