飞道的博客

世界上有哪些代码量很少,但很牛逼很经典的算法或项目案例?

341人阅读  评论(0)

点击上方蓝字设为星标

下面开始今天的学习~

今天分享四个代码量很少,但很牛逼很经典的算法或项目案例。

1、no code

项目地址:

https://github.com/kelseyhightower/nocode

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

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

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

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

2、洗牌算法

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

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

代码如下:


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

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

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

3、睡眠排序

代码如下:


   
  1. public class SleepSort {  
  2.     public static void main(String[] args) {  
  3.          int[] ints = { 1, 4, 7, 3, 8, 9, 2, 6, 5};  
  4.         SortThread[] sortThreads =  new SortThread[ints.length];  
  5.          for ( int i =  0; i < sortThreads.length; i++) {  
  6.             sortThreads[i] =  new SortThread(ints[i]);  
  7.         }  
  8.          for ( int i =  0; i < sortThreads.length; i++) {  
  9.             sortThreads[i].start();  
  10.         }  
  11.     }  
  12. }  
  13. class SortThread extends Thread{  
  14.      int ms =  0;  
  15.     public SortThread( int ms){  
  16.         this.ms = ms;  
  17.     }  
  18.     public void run(){  
  19.         try {  
  20.             sleep(ms* 10+ 10);  
  21.         } catch (InterruptedException e) {  
  22.              // TODO Auto-generated catch block  
  23.             e.printStackTrace();  
  24.         }  
  25.         System.out. println(ms);  
  26.     }  
  27. }  

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

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

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

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

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

4、AI核心代码


   
  1. while True:
  2.      print(input( '').replace('',' ').replace('',''))

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

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

-----------------------

公众号:五分钟学算法(ID:CXYxiaowu

博客:www.cxyxiaowu.com

知乎:程序员吴师兄

一个正在学习算法的人,致力于将算法讲清楚!

长按下图二维码关注,和你一起领悟算法的魅力


转载:https://blog.csdn.net/kexuanxiu1163/article/details/104057913
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场