博客
关于我
世界上有哪些代码量很少,但很牛逼很经典的算法或项目案例?
阅读量:307 次
发布时间:2019-03-04

本文共 2146 字,大约阅读时间需要 7 分钟。

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达本文转自| 视觉算法

1、no code

项目地址:

https://github.com/kelseyhightower/nocode

这是一个 GitHub 上的项目,目前标星 34k。

它的牛逼之处在于它 基于轻量级跨平台全自动不可描述工具,采用了不可描述的高级语言语法,不用写一行代码,即可部署运行,提供检测、编译、打包、安装、运行一条龙服务,安全可靠。

看完代码后,国内外的程序员纷纷留言夸奖。

真的是阅尽天下代码,心中已然无码!

2、洗牌算法

这个代码很简单,只有两行代码,但是却可以实现这个功能:对于给定的 n 个元素,生成的那个排列,每一个元素都能等概率地出现在每一个位置。

换句话说,每一个位置都能等概率地放置每个元素。

代码如下:

for(int i = n - 1; i >= 0 ; i -- )    swap(arr[i], arr[rand(0, i)]) // rand(0, i) 生成 [0, i] 之间的随机整数

我做了一个动画来帮你理解这个算法。

以上动画的制作参考了 liuyubobobo 之前写的一篇文章:,如果想更详细了解更多洗牌算法的介绍,可以点击进去看看。

3、睡眠排序

代码如下:

public class SleepSort {      public static void main(String[] args) {          int[] ints = {1,4,7,3,8,9,2,6,5};          SortThread[] sortThreads = new SortThread[ints.length];          for (int i = 0; i < sortThreads.length; i++) {              sortThreads[i] = new SortThread(ints[i]);          }          for (int i = 0; i < sortThreads.length; i++) {              sortThreads[i].start();          }      }  }  class SortThread extends Thread{      int ms = 0;      public SortThread(int ms){          this.ms = ms;      }      public void run(){          try {              sleep(ms*10+10);          } catch (InterruptedException e) {              // TODO Auto-generated catch block              e.printStackTrace();          }          System.out.println(ms);      }  }  

它原理是构造 n 个线程,它们和这 n 个数一一对应。

初始化后,线程们开始睡眠,等到对应的数那么多个时间单位后各自醒来,然后输出它对应的数。

这样最小的数对应的线程最早醒来,这个数最早被输出。

等所有线程都醒来,排序就结束了。

不要问时间复杂度,时间复杂度在这个排序上已经毫无意义!

4、AI核心代码

while True:    print(input('').replace('吗','').replace('?','!'))

这段代码就是传说中的 价值一个亿的AI核心代码,来看一下效果。

各位技术大神还知道哪些案例,欢迎留言补充:)

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

转载地址:http://enaq.baihongyu.com/

你可能感兴趣的文章
RegExp正则表达式-基本语法
查看>>
JavaScript 性能优化-防抖和节流
查看>>
属性闭包求解算法——数据库考试复习
查看>>
砍树问题(二分法)
查看>>
poj3260The Fewest Coins
查看>>
poj3617
查看>>
poj3069
查看>>
Day161.索引优化分析①[慢SQL、Join查询、索引简介、Explain性能分析] -MySql高级
查看>>
Day243.JWT结合SpringSecurity -springsecurity-jwt-oauth2
查看>>
Java洛谷P5461 赦免战俘讲解
查看>>
关于 form表单 嵌套问题的解决方案
查看>>
论转发与重定向参数传递问题(jsp+servlet项目开发遇到的问题)
查看>>
Android—— log.e(),log.d(),log.i()等的区别
查看>>
js中时间戳转时间格式
查看>>
位运算
查看>>
MarkDown
查看>>
线性代数 16 向量空间
查看>>
nginx 配置实例 - 反向代理(1)
查看>>
c++ 函数化 面向对象
查看>>
【无需额外安装插件】vscode 同步插件、设置、UI状态 | 超简单方法
查看>>