亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Golang > 正文

Go語言排序算法之插入排序與生成隨機數詳解

2020-04-01 19:02:38
字體:
來源:轉載
供稿:網友

前言

排序,對于每種編程語言都是要面對的。這里跟大家一起分享golang實現一些排序算法,并且說明如何生成隨機數。下面話不多說了,來一起看看詳細的介紹吧。

經典排序算法

算法的學習非常重要,是檢驗一個程序員水平的重要標準。學習算法不能死記硬背,需要理解其中的思想,這樣才能靈活應用到實際的開發中。

七大經典排序算法

  • 插入排序
  • 選擇排序
  • 冒泡排序
  • 希爾排序
  • 歸并排序
  • 堆排序
  • 快速排序

插入排序

先考慮一個問題:對于長度為n的數組,前n-1位都是遞增有序的,如何排序?

     1.從第1位至第n-1位遍歷數組,發現第n位數字應該放在第k位

     2.把第k位至第n-1位的數字依次向后挪一位

     3.這樣長度為n的數組就是遞增有序的了

具體實現方法:

package mainimport "fmt" func insertionSort(arr []int) {  for i := 1; i < len(arr); i++ {   value := arr[i]   for j := i - 1; j >= 0; j-- {    if value < arr[j] {     arr[j+1], arr[j] = arr[j], value    } else {     break    }   }  }}func main() { arr := []int{6, 5, 4, 3, 2, 1, 0} insertionSort(arr) fmt.Println("Sorted arr: ", arr)}

復雜度:

時間復雜度:O(n*n)

空間復雜度:額外空間O(1)

O表達式(Big O notation)通常用來在計算機科學中表示算法的復雜度,包括:

時間復雜度:衡量算法的運行時間

空間復雜度:衡量算法運行所占的空間,比如內存或硬盤等

一般情況下,O表達式代表的是最壞情況下的復雜度。

算法分析也是如此,在n個隨即數中查找某個數字,最好的情況是第一個數字就是,此時時間復雜度為O(1),若最后一個數字才是我們要找的,那么時間復雜度是O(n),這是最壞的情況。而平均運行時間是從概率的角度看,若數字在每一個位置都可能出現,則平均查找次數為n/2次。

平均運行時間是所有情況中最有意義的,因為它是期望的運行時間??涩F實中,平均運行時間很難通過分析得到,一般都是通過運行一定數量的實驗數據后估算而來的。而最壞運行時間是一種保證,那就是運行時間不會再壞了。在應用中,這是最重要的需求,通常,除非特別指定,我們提到的運行時間都是最壞情況下的運行時間。即,時間復雜度是最壞情況下的時間復雜度。

常見的算法時間復雜度由小到大依次為:

O(1)<O(log2n)<O(n)<O(n log2 n)<O(n^2)<O(n^3)<O(2^n)

這里的O就是一般表示復雜度的一個標志,類似計算復雜度的函數名稱一樣。

兩種復雜度都是一種估算,

估算的方式就是根據代碼的邏輯,分析出對于復雜度的公式。

在時間復雜度上,主要記錄的是帶有變量的循環。

比如for (i = 0; i < n; i ++) {...}可理解為O(n)

而 x = n + 1; y = x + 1; z = x + y;雖然是三條語句,但是沒有循環操作,所以理解為O(1)

在空間復雜度上,主要記錄的是帶有變量的空間申請。

比如int[n] x;可以理解為O(n)

而 int x; int y; int z;雖然是三個變量,但是沒有變化的申請操作,所以理解為O(1)

大O符號是用于描述函數漸近行為的數學符號。既可以表示無窮大漸近也可以表示

無窮小漸近??茨闶怯迷谒惴ㄟ€是描述數學函數估計中的誤差項

再來看看我們的插入排序:

  • 當數組是逆序的時候,時間復雜度是O(n*n)
  • 當數組幾乎是有序的時候,時間復雜度是O(n)

另外插入排序的overhead特別小,可以理解為常數等于1

在實際應用中,常數也是一個很重要的因素。有的算法復雜度低,但是常數較高;再加上數據的特點,有時候反而比不上復雜度更高但是常數低的算法。

在理解插入排序算法的過程中,應該要明白一個算法思想:

  • 把問題分解為子問題
  • 找到問題的初始狀態
  • 從問題的初始狀態,通過子問題,一步步得到最終的解

實際應用中,要靈活的選擇算法,有幾個重點要考慮的:

  • 復雜度:包括時間復雜度,空間復雜度,常數等
  • 實現復雜度:算法實現起來很難,不易于測試和維護的話,也是很大的問題
  • 適用性:在特定的業務場景下,是否有更合適的算法?

總的來說,要具體情況具體分析,在滿足業務的同時要簡潔的解決問題。

go 生成區間隨機數

// 函 數:生成隨機數 // 概 要: // 參 數: //  min: 最小值 //  max: 最大值 // 返回值: //  int64: 生成的隨機數 func RandInt64(min, max int64) int64 {  if min >= max || min == 0 || max == 0 {   return max  }  return rand.Int63n(max-min) + min } 

 

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩福利伦理影院免费| 欧美在线视频观看| 国模视频一区二区三区| 日本一本a高清免费不卡| 亚洲日本aⅴ片在线观看香蕉| 精品久久久久久久久久ntr影视| 亚洲最大成人网色| 欧美亚洲国产成人精品| 亚洲福利在线看| 国产精品视频xxx| 日韩视频中文字幕| 日韩精品久久久久久福利| 久久综合久中文字幕青草| 亚洲精品一区二区三区不| 中文字幕成人精品久久不卡| 揄拍成人国产精品视频| 在线观看视频99| 欧美成人国产va精品日本一级| 久久久精品中文字幕| 中文字幕日韩av电影| 国产精品久久久久9999| 亚洲丁香婷深爱综合| 国内精品久久久久影院优| 久久中文字幕在线| 欧美在线免费观看| 亚洲精品视频免费| 亚洲视频在线免费观看| 精品中文字幕久久久久久| 亚洲欧美日韩天堂一区二区| 色小说视频一区| 亚洲图片制服诱惑| 国产日韩在线亚洲字幕中文| 精品视频在线导航| 亚洲精品综合精品自拍| 91国偷自产一区二区三区的观看方式| 97精品国产aⅴ7777| 欧美精品第一页在线播放| 国产伦精品一区二区三区精品视频| 亚洲欧美色婷婷| 色诱女教师一区二区三区| 日韩欧美aⅴ综合网站发布| 亚洲精选在线观看| 国产精品中文字幕在线观看| 欧美午夜女人视频在线| 国产亚洲免费的视频看| 亚洲激情自拍图| 亚洲精品suv精品一区二区| 亚洲丁香久久久| 国产不卡精品视男人的天堂| 日韩在线中文视频| 中文国产成人精品| 精品小视频在线| 亚洲美女福利视频网站| 亚洲国产91色在线| 久久av在线播放| 大桥未久av一区二区三区| 欧美黑人性生活视频| 国产精品美女网站| 九九热99久久久国产盗摄| 亚洲美女视频网站| 国产999精品| 日本久久亚洲电影| 精品亚洲精品福利线在观看| 欧美成人合集magnet| 国产午夜精品久久久| 久久久久久久久久国产精品| 亚洲人成电影网站色www| 欧美成人午夜影院| 精品亚洲一区二区三区在线观看| 91po在线观看91精品国产性色| 亚洲а∨天堂久久精品喷水| 亚洲欧洲国产伦综合| 精品国产自在精品国产浪潮| 欧美激情一区二区三区成人| 国内精品视频一区| 成人字幕网zmw| 青草热久免费精品视频| 国产精品69精品一区二区三区| 亚洲日韩欧美视频一区| 欧洲日本亚洲国产区| 国产视频亚洲精品| 国产精品男人的天堂| 在线电影中文日韩| 亚洲国产成人精品久久久国产成人一区| 国产成人精品国内自产拍免费看| 日韩精品一区二区三区第95| 亚洲最大的成人网| 亚洲美女av电影| 国产成人高潮免费观看精品| 人体精品一二三区| 蜜臀久久99精品久久久久久宅男| 日韩成人在线视频| 清纯唯美日韩制服另类| 国产欧美婷婷中文| 欧美性在线观看| 中文.日本.精品| 成人免费激情视频| 国产精品久久久久久中文字| 亚洲毛茸茸少妇高潮呻吟| 国产精品免费电影| 国模视频一区二区三区| 日韩国产欧美精品一区二区三区| 51久久精品夜色国产麻豆| 欧美一级片在线播放| 日韩黄色av网站| 隔壁老王国产在线精品| 97人人爽人人喊人人模波多| 欧美午夜www高清视频| 国产成人高清激情视频在线观看| 欧美极品美女视频网站在线观看免费| 亚洲成人黄色在线观看| 欧美日韩亚洲一区二区三区| 欧美福利视频在线| 精品国产福利在线| 亚洲欧美日韩视频一区| 国产成人97精品免费看片| 91chinesevideo永久地址| 2019国产精品自在线拍国产不卡| 国产精品青青在线观看爽香蕉| 国产va免费精品高清在线观看| 亚洲天堂网在线观看| 日韩av不卡在线| 91国产高清在线| 日韩中文在线视频| 久久99久久亚洲国产| 日本a级片电影一区二区| 国产精品久久久久久久久影视| 91福利视频网| 亚洲精品国产精品国自产在线| 91视频-88av| 国产精品福利久久久| 国产三级精品网站| 岛国av一区二区| 国产视频福利一区| 亚洲国产精品yw在线观看| 亚洲精品视频网上网址在线观看| 亚洲人成电影网站色www| 亚洲韩国欧洲国产日产av| 中文国产成人精品久久一| 国产精品三级美女白浆呻吟| 欧美日韩国产123| 日韩av网站在线| 欧美成年人在线观看| 日韩免费av片在线观看| 国内精品久久久久久影视8| 日韩精品小视频| 国产精品久久久久久av福利| 成人久久精品视频| 欧美一级淫片videoshd| 97久久精品人搡人人玩| 中文字幕成人在线| 亚洲第一免费播放区| 精品久久中文字幕久久av| 久久久久久久久久久成人| 国产综合视频在线观看| 国产一区二区三区在线视频| 亚洲最大成人免费视频| 亚洲第一精品久久忘忧草社区| 成人免费淫片aa视频免费| xxx一区二区| 91国语精品自产拍在线观看性色| 欧美日韩亚洲成人| 国产日韩在线观看av| 成人网中文字幕|