lowB 三人组

lowB 三人组

1.冒泡排序

2.选择排序

3.插入排序

1.冒泡排序

#冒泡排序法:竖看,一一比较,把大的放在最顶。 每两个相邻的数,如果前边的比后边大就交换这两个数。
‘‘‘
分析:
    1.本来为无序区,没进行一趟冒泡,就有一位进入有序区,无序区就-1
        2.正常来说:一个列表需要走N趟冒泡,但是,最后一位数其实是不需要走了,就是 N-1 趟
        3.i 表示趟数,j 表示 箭头
    2.时间复杂度:O(N2)
‘‘‘
import random

def bubble_sort(x):
    for i in range(len(x)-1):
        change = False
        for j in range(len(x)-i-1):       if x[j] > x[j+1]:
                x[j],x[j+1] = x[j+1],x[j]
                change =True
        if not change:
            break

li = list(range(10))
random.shuffle(li)
print(li)
bubble_sort(li)
print(li)

结果:

2.选择排序

# 选择排序法: 横看,把最小的放在最左边
‘‘‘
关键点:
    无序区

    最小数额位置
‘‘‘
import random

def select_sort(x):
    for i in range(len(x)-1):
        min_loc = i
        for j in range(i+1,len(x)):
            if x[j] < x[min_loc]:
                min_loc = j
        if min_loc !=i:
            x[i],x[min_loc] = x[min_loc],x[i]

li = list(range(10))
random.shuffle(li)
print(li)
select_sort(li)
print(li)

结果:

3.插入排序

# 插入排序法: 先一个有序区数字,把无序区的数依次插入到有序区,直到无序区没有为止
‘‘‘
关键点:
    摸到的牌
    手里的牌

‘‘‘
import random
def insert_sort(x):
    for i in range(1,len(x)):
        tmp = x[i]
        j = i-1
        while j >=0  and tmp < x[j]:
            x[j+1] = x[j]
            j = j-1
        x[j+1] = tmp

li = list(range(10))
random.shuffle(li)
print(li)
insert_sort(li)
print(li)

结果:

原文地址:https://www.cnblogs.com/zhongbokun/p/9060934.html

时间: 2024-11-13 15:12:26

lowB 三人组的相关文章

算法 排序lowB三人组 冒泡排序 选择排序 插入排序

参考博客:基于python的七种经典排序算法   [经典排序算法][集锦]     经典排序算法及python实现 首先明确,算法的实质 是 列表排序.具体就是操作的列表,将无序列表变成有序列表! 一.排序的基本概念和分类 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作.排序算法,就是如何使得记录按照要求排列的方法. 排序的稳定性: 经过某种排序后,如果两个记录序号同等,且两者在原无序记录中的先后秩序依然保持不变,则称所使用的排序方法是稳定的,反之是不稳定

算法-lowb三人组

---恢复内容开始--- d定义: pandas是一个强大的Python数据分析的工具包. pandas是基于NumPy构建的. 安装方法: pip install pandas import pandas as pd pandas的主要功能 具备对其功能的数据结构DataFrame.Series 集成时间序列功能 提供丰富的数学运算和操作 灵活处理缺失数据 Series 定义:Series是一种类似于一位数组的对象,由一组数据和一组与之相关的数据标签(索引)组成. 创建方式: 创建方式: pd

算法排序-lowB三人组

冒泡排序思路: 选择排序思路: 插入排序思路: 小结: 详细代码解释看下一篇 原文地址:https://www.cnblogs.com/52-qq/p/8398957.html

算法1-排序LowB三人组

import random from timewrap import * @cal_time def bubble_sort(li): for i in range(len(li) - 1): # i 表示趟数 # 第 i 趟时: 无序区:(0,len(li) - i) for j in range(0, len(li) - i - 1): if li[j] > li[j+1]: li[j], li[j+1] = li[j+1], li[j] @cal_time def bubble_sort_

算法之LOWB三人组之选择排序

选择排序 思想是在一个列表中每次循环一遍,拿到最小值,接着再从剩下的无序区中继续拿最小值,如此循环,直到结束. # 最简单的一个选择排序,循环一个列表,拿到最小值,添加到一个新列表,之后在列表中删除这个最小值,继续再剩下的值中找最小值,往复循环. def select_sort_simple(li): new_li = [] for i in range(len(li)): min_val = min(li) new_li.append(min_val) li.remove(min_val) r

算法之LOWB三人组之插入排序

插入排序 思想:类似于抽扑克牌,共有8张扑克牌,手里默认有一张,桌面上有7张,我们每次从桌面上抽一张和手里的牌进行比较,如果比手里的牌大,则直接放到手里的牌的后面,如果比手里的牌小,则放到手里的牌的前面,保证你放的每一次都会产生一个有序区.当牌完的时候,这8张牌也就排好了顺序.这就是插入排序 时间复杂度为O(n^2) def insert_sort(li): for i in range(1, len(li)): tmp = li[i] # 摸到的牌存一个变量中 j = i - 1 # 模到的牌

排序算法lowb三人组-插入排序

def insert_sort(li): for i in range(1, len(li)): # i表示摸到的牌的下标 tmp = li[i] # 摸到的牌 j = i - 1 while j >= 0 and li[j] > tmp: # 只要往后挪就循环 2个条件都得满足 # 如果 j=-1 停止挪 如果li[j]小了 停止挪 li[j+1] = li[j] j -= 1 # j位置在循环结束的时候要么是-1要么是一个比tmp小的值 li[j+1] = tmp 和冒泡相似,循环的时候遇

排序算法lowb三人组-选择排序

def get_min_pos(li): min_pos = 0 for i in range(1, len(li)): if li[i] < li[min_pos]: min_pos = i return min_pos def select_sort(li): for i in range(len(li)-1): # n或者n-1趟 # 第i趟无序区范围 i~最后 min_pos = i # min_pos更新为无序区最小值位置 for j in range(i+1, len(li)): i

Linux中不可或缺的“grep三人组”与正则表达式的那些事

Linux上文本处理"三人组" grep, egrep, fgrep:文本搜索工具:基于"pattern"对给定文本进行搜索操作: 正则表达式:Regular Expression, REGEX,由一类特殊字符及文本字符所编写的模式,其有些字符不表示其字面意义,而是用于表示控制或通配的功能: 分两类: 基本正则表达式:BRE 扩展正则表达式:ERE grep家族: grep:  支持使用基本正则表达式: egrep:支持使用扩展正则表达式: fgrep:不支持使用正