今天分享四個代碼量很少,但很牛逼很經(jīng)典的算法或項(xiàng)目案例。
1、no code
項(xiàng)目地址:
https://github.com/kelseyhightower/nocode
這是一個 GitHub 上的項(xiàng)目,目前標(biāo)星 34k。
它的牛逼之處在于它 基于輕量級跨平臺全自動不可描述工具,采用了不可描述的高級語言語法,不用寫一行代碼,即可部署運(yùn)行,提供檢測、編譯、打包、安裝、運(yùn)行一條龍服務(wù),安全可靠。
看完代碼后,國內(nèi)外的程序員紛紛留言夸獎。
真的是閱盡天下代碼,心中已然無碼!
2、洗牌算法
這個代碼很簡單,只有兩行代碼,但是卻可以實(shí)現(xiàn)這個功能:對于給定的 n 個元素,生成的那個排列,每一個元素都能等概率地出現(xiàn)在每一個位置。
換句話說,每一個位置都能等概率地放置每個元素。
代碼如下:
for(int i = n - 1; i >= 0 ; i -- )
swap(arr[i], arr[rand(0, i)]) // rand(0, i) 生成 [0, i] 之間的隨機(jī)整數(shù)
我做了一個動畫來幫你理解這個算法。
以上動畫的制作參考了 liuyubobobo 之前寫的一篇文章:神一般的算法,如果想更詳細(xì)了解更多洗牌算法的介紹,可以點(diǎn)擊進(jìn)去看看。
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);
}
}
它原理是構(gòu)造 n 個線程,它們和這 n 個數(shù)一一對應(yīng)。
初始化后,線程們開始睡眠,等到對應(yīng)的數(shù)那么多個時間單位后各自醒來,然后輸出它對應(yīng)的數(shù)。
這樣最小的數(shù)對應(yīng)的線程最早醒來,這個數(shù)最早被輸出。
等所有線程都醒來,排序就結(jié)束了。
不要問時間復(fù)雜度,時間復(fù)雜度在這個排序上已經(jīng)毫無意義!
4、AI核心代碼
while True:
print(input('').replace('嗎','').replace('?','!'))
這段代碼就是傳說中的 價值一個億的AI核心代碼,來看一下效果。
地址:柳州市陽光100-3號樓-7-23
公司名稱:柳州智慧星網(wǎng)絡(luò)科技有限公司
開戶行:柳州銀行紅光支行
賬戶:7080 0500 0000 0003 2067
15807738124(技術(shù)總監(jiān))
15807730604(產(chǎn)品經(jīng)理)
柳州智慧星網(wǎng)絡(luò)公司-專注柳州網(wǎng)站建設(shè),柳州小程序制作,柳州軟件開發(fā),擁有15年廣西網(wǎng)站建設(shè)團(tuán)隊(duì)開發(fā)經(jīng)驗(yàn),擁有5000余成功案例!
Copyright ?2006 - 2020 999xing.com All Rights Reserved.
公司承接: 柳州網(wǎng)站建設(shè),柳州小程序開發(fā),柳州公眾號維護(hù),柳州網(wǎng)站制作,柳州團(tuán)購商城開發(fā),柳州軟件開發(fā),柳州網(wǎng)站設(shè)計,柳州公眾號維護(hù)
柳州智慧星網(wǎng)絡(luò)科技有限公司版權(quán)所有
桂公網(wǎng)安備 45020402000142號