教育改变生活

标题: 那些只有几行,但是却非常牛逼的代码! [打印本页]

作者: 李玮    时间: 2020-10-28 09:56
标题: 那些只有几行,但是却非常牛逼的代码!
1、no code
项目地址:
https://github.com/kelseyhightower/nocode
这是一个 GitHub 上的项目,目前标星 34k。
它的牛逼之处在于它 基于轻量级跨平台全自动不可描述工具,采用了不可描述的高级语言语法,不用写一行代码,即可部署运行,提供检测、编译、打包、安装、运行一条龙服务,安全可靠。
看完代码后,国内外的程序员纷纷留言夸奖。
真的是阅尽天下代码,心中已然无码!
2、洗牌算法
这个代码很简单,只有两行代码,但是却可以实现这个功能:对于给定的 n 个元素,生成的那个排列,每一个元素都能等概率地出现在每一个位置。
换句话说,每一个位置都能等概率地放置每个元素。
代码如下(JDK中Collections.shuffle()也是这样实现的):
  1. for(int i = n - 1; i >= 0 ; i -- )
  2.     // rand(0, i) 生成 [0, i] 之间的随机整数
  3.     swap(arr[i], arr[rand(0, i)])
复制代码

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核心代码,来看一下效果。
5、获取第二天时间
代码如下:
  1. // 人才人才
  2. thread.sleep(86400*1000L);
复制代码







欢迎光临 教育改变生活 (http://bbs.goldoar.com/) Powered by Discuz! X3.2