建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
请选择 进入手机版 | 继续访问电脑版
设置昵称

在此一键设置昵称,即可参与社区互动!

确定
我再想想
选择版块
标签
您还可以添加5个标签
  • 没有搜索到和“关键字”相关的标签
  • 云产品
  • 解决方案
  • 技术领域
  • 通用技术
  • 平台功能
取消

氟西汀

发帖: 157粉丝: 8

级别 : 外部版主

发消息 + 关注

发表于2020年10月10日 07:57:33 86 2
直达本楼层的链接
楼主
显示全部楼层
[干货分享] python实现冒泡,快排,选择和插入排序

1.冒泡排序

def my_sort(array):
    flag=1
    for i in range(len(array)):
        if(flag==1):
            flag=0
            for j in range(len(array)-i-1):
                if(array[j]>array[j+1]):
                    temp=array[j]
                    array[j]=array[j+1]
                    array[j+1]=temp
                    flag=1
        else:
            break
    return array

2.选择排序

 

def quick_sort(low,high,array):
    solder=array[low]
    while(low<high):
        if(array[high]<solder):
            array[low]=array[high]
            low+=1
            while(low<high):
                if(array[low]>solder):
                    array[high]=array[low]
                    high-=1
                    break
                else:
                    low+=1
        else:
            high-=1
    array[high]=solder
    return array,high

def recursion(array,low,high):
    if low<high:
        array,middle=quick_sort(low,high,array)
        recursion(array,low,middle-1)
        recursion(array,middle+1,high)
    print(array)

 

3.选择排序

#选择排序
def chocice_sort(array):
    #由于array不支持index,将其转为list来做
    array=list(array)
    for i in range(len(array)):
        try:
            data=None
            data=array[i:]
            print(type(data))
            index=array.index(min(data))
            temp=array[i]
            array[i]=array[index]
            array[index]=temp
        #print(array)
        except:
            pass
        continue
    print(array)
 

4.插入排序

#直接插入排序
def dir_sort(array):
    for i in range(1,len(array)):
        temp=array[i]
        for j in range(i-1,-1,-1):
            print(array)
            if (array[j]>temp)&(j==0):
                array[1]=array[0]
                array[0]=temp
                break
            if (array[j]>temp)&(j!=0):
                array[j+1]=array[j]
                continue
            if(array[j]<temp):
                array[j+1]=temp
                break       
            #print(array)

#调用

data=np.array([0]*10)
for i in range(10):
    data[i]=random.randint(1,100)
#print(data)
#print(len(data.shape))
#data=recursion(data,0,9)
#chocice_sort(data)
dir_sort(data)



举报
分享

分享文章到朋友圈

分享文章到微博

lte网络工程师

发帖: 102粉丝: 1

级别 : 外部版主

发消息 + 关注

更新于2020年10月13日 09:57:10
直达本楼层的链接
沙发
显示全部楼层

发泡最简捷易懂,执行速度也比较快。

点赞 评论 引用 举报

追梦柠檬男

发帖: 88粉丝: 1

级别 : 外部版主

发消息 + 关注

发表于2020年10月17日 19:33:14
直达本楼层的链接
板凳
显示全部楼层

点赞 评论 引用 举报

游客

富文本
Markdown
您需要登录后才可以回帖 登录 | 立即注册