偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

長(zhǎng)見(jiàn)識(shí)了!世界上最慢的排序算法!

開(kāi)發(fā) 開(kāi)發(fā)工具 算法
今天,和大家分享一個(gè),世界上最慢的排序算法,猴子排序。之所以叫猴子排序,源自典故:一只猴子隨機(jī)敲擊鍵盤(pán),只要時(shí)間足夠久,一定能敲出莎士比亞的詩(shī)。

今天,和大家分享一個(gè),世界上最慢的排序算法,猴子排序(bogo sort)。

話不多說(shuō),先上偽代碼:

  1. int bogo_sort(int& arr[], int n){ 
  2.         while(false== is_sorted(arr[n])){ 
  3.                 random_shuffle(arr[n]); 
  4.         } 
  5.         return 0; 

之所以叫猴子排序,源自典故:一只猴子隨機(jī)敲擊鍵盤(pán),只要時(shí)間足夠久,一定能敲出莎士比亞的詩(shī)。

看了偽代碼,很容易理解其核心思路是:

(1)判斷待排序的數(shù)組是否有序,有序則返回排序完畢;

(2)無(wú)序,則隨機(jī)打亂數(shù)組;

(3)重復(fù)(1);

只要執(zhí)行的時(shí)間足夠長(zhǎng),隨機(jī)的次數(shù)足夠久,總能夠得到排序后的結(jié)果,它號(hào)稱是世界上最慢的排序算法。

那么問(wèn)題來(lái)了,這個(gè)排序有什么用呢?

我能夠想到的,就是大學(xué)里作為算法課的時(shí)間復(fù)雜度推導(dǎo)習(xí)題,或者面試過(guò)程中時(shí)間復(fù)雜度計(jì)算考題了,又或者裝13的談資了,其他好像沒(méi)有什么用。

那這個(gè)排序算法的時(shí)間復(fù)雜度是多少呢?

簡(jiǎn)單來(lái)分析一下。

n個(gè)元素隨機(jī)打亂,有n!種組合。

  • 一次排序成功的概率是p1 = 1/n!,一次排序失敗的概率是p2 = 1-p1;
  • 兩次排序成功的概率是p2*p1;畫(huà)外音:第1次失敗,第2次成功。
  • 三次排序成功的概率是p2^2*p1;畫(huà)外音:前2次失敗,第3次成功。
  • k次排序成功的概率是p2^(k-1)*p1畫(huà)外音:前k-1次失敗,第k次成功。

于是,平均排序成功次數(shù)的期望:

E(X) =1次 * 一次成功的概率+2次 * 二次成功的概率+3次 * 三次成功的概率+…+k次 * k次成功的概率+…

即:

最后,根據(jù)大家大學(xué)里學(xué)的無(wú)窮級(jí)數(shù)的數(shù)學(xué)知識(shí),“很容易”得到,其時(shí)間復(fù)雜度是O(n*n!),這是一個(gè)階乘級(jí)別的算法。

【本文為51CTO專欄作者“58沈劍”原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)聯(lián)系原作者】

戳這里,看該作者更多好文 

 

責(zé)任編輯:趙寧寧 來(lái)源: 51CTO專欄
相關(guān)推薦

2017-07-12 09:46:00

5G社會(huì)網(wǎng)絡(luò)

2018-11-06 12:22:18

排序算法代碼

2023-07-31 08:59:46

軟件FossilSQLite

2025-03-27 00:45:00

2024-05-28 09:17:57

2013-05-08 09:38:28

InteropNetSDN網(wǎng)絡(luò)設(shè)備供應(yīng)商

2018-12-04 15:46:53

編程語(yǔ)言Python

2018-07-19 19:07:33

語(yǔ)言編程語(yǔ)言程序

2021-12-21 18:14:59

戴爾

2022-08-26 13:41:19

代碼PythonJava

2019-11-18 15:07:54

編程語(yǔ)言C#

2013-04-24 09:57:08

Excel微軟

2013-09-16 11:12:51

編程環(huán)境開(kāi)發(fā)

2023-06-28 11:14:18

2010-09-02 13:21:46

2013-06-09 08:52:50

哈希表

2014-09-05 09:08:58

2024-07-01 09:23:39

2019-07-04 12:58:26

UI漢堡圖標(biāo)設(shè)計(jì)師

2024-04-28 07:50:00

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)