婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Go語言排序算法之插入排序與生成隨機數詳解

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

熱門標簽:建造者2地圖標注 惠州電銷防封電話卡 汕頭小型外呼系統 黃岡人工智能電銷機器人哪個好 阿里云ai電話機器人 鄭州亮點科技用的什么外呼系統 濱州自動電銷機器人排名 釘釘有地圖標注功能嗎 浙江高頻外呼系統多少錢一個月

前言

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

經典排序算法

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

七大經典排序算法

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

插入排序

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

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

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

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

具體實現方法:

package main
import "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次。

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

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

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 
} 

參考文章: 【BAT后臺入門】第二課:數組與排序

總結

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

您可能感興趣的文章:
  • Go語言實現冒泡排序、選擇排序、快速排序及插入排序的方法
  • Golang 實現插入排序的方法示例(2種)

標簽:瀘州 滄州 阿壩 東營 昭通 駐馬店 晉中 泰安

巨人網絡通訊聲明:本文標題《Go語言排序算法之插入排序與生成隨機數詳解》,本文關鍵詞  語言,排序,算法,之,插入,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Go語言排序算法之插入排序與生成隨機數詳解》相關的同類信息!
  • 本頁收集關于Go語言排序算法之插入排序與生成隨機數詳解的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产一区二区三区四区五区美女| 欧美主播一区二区三区美女| 蜜桃视频免费观看一区| 一区二区三区在线视频播放| 亚洲日本在线视频观看| 精品少妇一区二区三区在线视频| 日韩欧美一二区| 亚洲精品欧美综合四区| 日韩不卡一区二区| 国产一区二区三区| 欧美久久婷婷综合色| 中文字幕一区免费在线观看 | 亚洲欧美另类久久久精品2019| 亚洲日本免费电影| 国模娜娜一区二区三区| 在线视频国内自拍亚洲视频| 中文字幕一区二区三区四区| 国内精品在线播放| 久久亚洲一区二区三区明星换脸| 日韩制服丝袜先锋影音| 6080亚洲精品一区二区| 日本免费在线视频不卡一不卡二| 一本大道综合伊人精品热热| 欧美国产1区2区| 91网站最新网址| 国产精品免费免费| 欧美性色黄大片| 国产欧美一区二区在线观看| 婷婷中文字幕一区三区| 欧美一级黄色录像| 风间由美中文字幕在线看视频国产欧美| 日韩欧美国产小视频| 国产成人免费在线| 亚洲欧美综合色| 在线亚洲欧美专区二区| 午夜激情综合网| 一区二区三区日韩精品视频| 国产精品一区二区三区乱码| 亚洲色欲色欲www| 午夜视黄欧洲亚洲| 欧美性大战久久久| 久久av老司机精品网站导航| 久久久91精品国产一区二区精品| 国产不卡在线一区| 日韩国产精品91| 日韩理论片中文av| 欧美精品日韩一本| 丁香婷婷综合色啪| 日韩av成人高清| 美女一区二区在线观看| 免费一区二区视频| 精品亚洲免费视频| 久久电影网电视剧免费观看| 亚洲电影一级片| 丝袜亚洲另类丝袜在线| 日本aⅴ亚洲精品中文乱码| 午夜精品免费在线| 久久不见久久见中文字幕免费| 六月丁香婷婷久久| 美女视频黄频大全不卡视频在线播放| 亚洲欧洲在线观看av| 日韩欧美一区二区三区在线| 日韩午夜激情电影| 欧美刺激脚交jootjob| 91精品国产麻豆国产自产在线| 欧美一区二区三区免费视频| 东方欧美亚洲色图在线| 18欧美乱大交hd1984| 成人av资源下载| 午夜精品在线视频一区| 国产精品国产三级国产a| 6080午夜不卡| 99re成人精品视频| 国产成人在线看| 不卡在线观看av| 国产不卡免费视频| 国产毛片精品视频| 依依成人精品视频| 亚洲欧美偷拍三级| 成人免费一区二区三区在线观看| 久久久久国产免费免费 | 国产精品午夜在线| 91精品国产91综合久久蜜臀| 91福利区一区二区三区| 一本高清dvd不卡在线观看| 欧美一级久久久久久久大片| 91在线国产观看| 欧美激情中文不卡| 亚洲欧洲一区二区三区| 亚洲精品乱码久久久久| 亚洲三级在线看| 亚洲一区av在线| 美国欧美日韩国产在线播放| 美女脱光内衣内裤视频久久网站| 正在播放亚洲一区| 国产清纯美女被跳蛋高潮一区二区久久w | 亚洲国产精品久久久久婷婷884| 亚洲欧洲日韩av| 国产乱码精品一区二区三区五月婷 | 精品影视av免费| 久久精品国产亚洲5555| 国产成人在线影院| 欧美电影一区二区| 中文字幕亚洲电影| 久久超碰97中文字幕| 在线免费观看日本欧美| 精品久久99ma| 一区二区高清免费观看影视大全| 欧美大片拔萝卜| 午夜欧美2019年伦理| 日本黄色一区二区| 精品国产乱码久久久久久1区2区 | 粉嫩欧美一区二区三区高清影视| 欧美日韩久久久一区| 日韩欧美不卡在线观看视频| 亚洲精品你懂的| 91久久香蕉国产日韩欧美9色| 精品处破学生在线二十三| 欧美国产日韩在线观看| 视频一区二区中文字幕| 日韩电影在线一区| 一本久久a久久精品亚洲| 国产精品无码永久免费888| 国产成人在线视频网址| 国产视频一区二区在线| 国产精品77777| 久久久久国产成人精品亚洲午夜| 久久精品噜噜噜成人av农村| 精品视频一区三区九区| 麻豆传媒一区二区三区| 国产婷婷色一区二区三区| 国产 日韩 欧美大片| 亚洲欧美国产毛片在线| 国产suv精品一区二区三区| 久久精品一区二区三区不卡牛牛| 国产麻豆欧美日韩一区| 久久综合999| 欧美亚洲国产bt| 国产综合色在线视频区| 欧洲亚洲精品在线| 福利一区福利二区| 老司机免费视频一区二区| 中文字幕成人网| 成人做爰69片免费看网站| 一区二区三区鲁丝不卡| 久久久精品免费网站| 欧美顶级少妇做爰| 捆绑调教一区二区三区| 亚洲成av人片在www色猫咪| 欧美成人女星排名| 欧美视频在线观看一区| 一本久久精品一区二区| 成人av电影观看| 99久久免费精品| 91精品福利视频| 色悠久久久久综合欧美99| thepron国产精品| 91在线免费看| 91免费视频网| 色悠久久久久综合欧美99| av爱爱亚洲一区| 国产一区二区三区高清播放| 丁香激情综合五月| 在线播放视频一区| 国产在线一区观看| 丝袜美腿亚洲一区| 欧美高清你懂得| 久久久久久久综合日本| 欧美日韩一区二区三区视频 | 久久久久国产精品麻豆| 久久亚洲二区三区| 亚洲另类春色校园小说| 欧美一级国产精品| 精品免费视频一区二区| 国产精品毛片久久久久久久| 精品福利一二区| 国产ts人妖一区二区| av电影在线观看一区| 欧美电影在哪看比较好| 国产精品麻豆视频| 久久99国内精品| 中文字幕高清不卡| 国产尤物一区二区| 日韩午夜在线播放| 一区二区三区在线免费观看| 成人手机电影网| 在线观看免费成人| 亚洲免费观看高清完整版在线观看 | 韩国中文字幕2020精品| 99re成人精品视频| 国产精品丝袜久久久久久app| 亚洲成人av资源| 欧美日韩亚洲不卡| 亚洲免费观看在线观看| 成人h版在线观看| 久久久久久久国产精品影院| 久88久久88久久久| 国产亚洲一二三区| 91蝌蚪国产九色| 亚洲欧美日韩中文播放|