• Home
  • 归档
文章检索 作品与友邻 关于我
暴君乔博客
Home 归档

算法系列之排序

发布于: 2018-08-05
更新于: 2023-07-09
文章目录
  1. algorithms
    1. sorted methods

algorithms

Review sort, and learn Coursera lessons, share my code, and mark how to make the algorithms visually.

sorted methods

Bubble Sort

The best occasion will be o(n), one time recurse, n-1 comparision times.Bubble sort’s worst-case and average are both o(n^2)

do{
    boolean unordered=false;
    for(int i=0;i<array_length-1;i++)
        if(left_element>right_element){
            swap(left_element,right_element);
            unordered=true;
        }
}while(unordered==true)

Select sort

o(n^2)

for index in range(list_length-1):
    smallest=index
    for comparision in range(list_length-index-1):
        if list[smallest]>comparison:
            smallest=comparision
    swap(list[index],list[comparision])

insertion sort:

def insertion_sort(list):
    for index in range(1,len(list)):
        j=index
        while(j>0)&&list[j]<list[j-1]:
            list[j],list[j-1]=list[j-1],list[j]
            j-=1
    return list

merge sort:

from sarath joseph

def merge_sort(x):

if len(x) < 2:return x

result,mid = [],int(len(x)/2)

y = merge_sort(x[:mid])
z = merge_sort(x[mid:])

while (len(y) > 0) and (len(z) > 0):
        if y[0] > z[0]:result.append(z.pop(0))
        else:result.append(y.pop(0))

result.extend(y+z)
return result

quick sort

def quick_sort(list):
    result=[]
    for i in range(len(list)-1):
        if list[i:]<list[i]:
            resutlt.append(list

calculate time

test_list = (random.sample(range(100), 50))
print(test_list)
time=bestof(merge_sort,test_list)
print(time)

use the same list, test each time consuming:

[7, 84, 89, 47, 73, 24, 91, 55, 70, 44, 23, 80, 3, 25, 94, 58, 64, 17, 76, 12, 6, 87, 42, 51, 75, 20, 30, 22, 74, 41, 61, 52, 53, 1, 27, 56, 38, 79, 83, 93, 4, 86, 90, 69, 0, 96, 46, 40, 67, 50]
0.00018517441462646942 merge sort
1.3257290654551017e-05 insert sort
0.00017491070573262373 select sort
1.1119017968332957e-05 Bubble sort

算法系列之排序
/archives/96be4c5/
作者
tyrantqiao
发布于
2018-08-05
更新于
2023-07-09
许可协议
CC BY-NC-SA 4.0
赏

蟹蟹大佬的打赏,大家一起进步

支付宝
微信
  • 算法

扫一扫,分享到微信

微信分享二维码
Java面经_2018
算法系列之查找
© 2026 tyrantqiao 本站总访问量次 本站访客数人次 载入天数...载入时分秒...
  • 文章检索
  • 作品与友邻
  • 关于我

展开标签

  • 随笔
  • 旅行
  • Java
  • 面经
  • 源码
  • 架构
  • Hadoop
  • 计算机网络
  • 技术
  • IDEA
  • maven
  • JDK
  • Linux
  • MySQL
  • 性能
  • 数据库
  • Redis
  • MQ
  • Spring
  • SquirrelFin
  • 记账
  • Android
  • 个人财务
  • TIDB
  • unity
  • chatgpt
  • 前端
  • Vue
  • Git
  • shadowsocks
  • Hexo
  • 问题排查
  • 业务
  • JVM
  • 算法
  • nginx
  • ssh
  • Python
  • 爬虫
  • test
  • vim
  • 影视剧
  • 中间件
  • 事务
  • 表达
  • 运动
  • mybatis
  • 域名
  • AI
  • 产品
  • 家装
  • 土巴兔
  • github
  • 软件
  • 个人项目
  • Leaves
  • 幽默
  • 穿搭
  • 画画
  • 缓存
  • 摄影
  • 设计模式
  • c
  • 课程设计
  • 调酒
  • 数学

Collection

作品与友邻

我做的小工具、朋友的站点和一些长期值得回访的灵感来源。

  • 土 土巴兔 AI 导购交互演示 可点击体验用户导购、平台运营、装修公司、材料商及 AI 话术知识库的多端增长流程。 /demos/tubatu-ai-guide/
  • L Leaves 行程记录 我做的行程记录页面小工具,用来沉淀旅行路线、日程安排和途中的灵感。 https://leaves.tyrantqiao.com/
  • 本 本网站主题yilia设计者的主页 http://litten.me/
tyrantqiao的头像

tyrantqiao

github rss qq mail facebook linkedin

About

关于我

代码、海浪和持续折腾,都是生活的一部分。

<div class="aboutme-card"> <p class="aboutme-eyebrow">tyrantqiao</p> <h3>Java 全栈开发</h3> <p>常年和 Java、后端服务、前端工程、数据与部署打交道,喜欢把复杂问题拆开、写清楚,也把踩坑过程整理成文章留给后来的人。</p> <div class="aboutme-tags"> <span>Java</span> <span>Full Stack</span> <span>Backend</span> <span>Frontend</span> <span>Extreme Sports</span> </div> <p>工作之外偏爱冲浪等极限运动,享受在浪上找平衡,也享受在代码里找边界。</p> <div class="aboutme-contact"> <a href="mailto:[email protected]">Gmail</a> <a href="mailto:[email protected]">QQ Mail</a> </div> </div>