日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

02-选择排序

發布時間:2023/12/4 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 02-选择排序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數據結構和算法
基于《算法圖解》—Aditya Bhargava和《數據結構》—嚴蔚敏

第2章

2.1 內存的工作原理
計算機就像是很多抽屜的集合體,每個抽屜都有地址。需要將數據存儲到內存是,請求計算機提供存儲空間,計算機則分配一個地址。需要存儲多項數據時,有兩種基本方式—數組和鏈表。

2.2 鏈表和數組
2.2.1 鏈表

  • 鏈表中的元素可存儲在內存的任何地方。
  • 鏈表的每個元素都存儲了下一個元素的地址,從而是一系列隨機的內存地址串在一起。
  • 在鏈表中添加元素很容:只需將其放入內存,并將其地址存儲到前一個元素中。
  • 在需要讀取鏈表的最后一個元素時,不能直接讀取,因為不知道地址,必須先訪問第一個元素,從而獲取第二個元素的地址,以此類推。適合讀取全部元素。

2.2.2 數組

  • 我們知道數組中的每個元素的地址。適合隨機讀取。

2.2.3 插入元素的對比

  • 使用鏈表時,插入元素很簡單,只需修改它前面的那個元素指向的地址。
  • 使用數組插入元素時,必須將后面的元素都向后移。
  • 所以,當需要在中間插入元素時,鏈表時更好的選擇。

2.2.4 刪除

  • 鏈表,只需修改前一個元素指向的地址即可。
  • 數組,刪除元素后,必須將后面的元素都向前移。

2.2.5 順序訪問和隨機訪問

  • 順序訪問意味著從第一個元素開始逐個地讀取元素。鏈表只能順序讀取。
  • 隨機訪問意味著可以直接讀取任何位置的元素。數組支持隨機讀取。

2.3 選擇排序

#找出數組中最小元素的函數 def findSmallest(arr):smallest = arr[0] #存儲最小的值smallest_index = 0 #存儲最小元素的索引for i in range(1, len(arr)):if arr[i] < smallest:smallest = arr[i]smallest_index = ireturn smallest_index#排序算法函數 def selectionSort(arr): #對arr數組進行排序newArr = []for i in range(len(arr)):smallest = findSmallest(arr) #找出數組中最小的元素newArr.append(arr.pop(smallest)) #并將其加入到新數組中return newArr print selectionSort([5,3,6,2,10])

2.4 小結

  • 計算機內存猶如一大堆抽屜。
  • 需要存儲多個元素時,可使用數組或鏈表。
  • 數組的元素都有序存放在一起。
  • 鏈表的元素是分開的,其中每個元素都存儲了下一個元素的地址。
  • 數組的讀取速度很快,特別是隨機讀取。
  • 鏈表的插入和刪除速度很快。
  • 在同一個數組中,所有元素的數據類型都必須相同。

——持續修改完善中…

總結

以上是生活随笔為你收集整理的02-选择排序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。