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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

排序及其分类(一级)

發布時間:2024/4/13 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 排序及其分类(一级) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

接下來我們看一下數據結構里面的專題叫排序,排序有哪些內容,首先排序的基本概念,各種排序的比較1. 中間交換排序,對于交換排序有冒泡排序和快速排序2. 選擇排序3. 插入排序我們先來看排序的基本概念什么叫排序?有相關的概念我就不在這里重復了,給一組數據它是無序的,我們按照某個關鍵字對他進行排序,最終變成一個有序的就可以了.看他的一種分類什么叫內部排序,什么叫外部排序?如果整個的排序都在內存中進行,那就叫內部排序,但是還有一種情況是數據量特別的大,大量的數據是存在硬盤里面的,我們要一次加載內存里面,加不進來,周轉不開,怎么辦,倉庫里面的東西太多,一下子放在車間放不下,那怎么辦呢,內存中無法容納全部數據,需要借助外部存儲設備實現,這叫外部排序,我們講的肯定都是內部排序,我們講的都是在內存里面進行的,這是第一點,知道有這個排序 下面有一個叫穩定排序,一個叫不穩定排序什么叫穩定排序,什么叫不穩定排序,我們來看,比如說在這個排序之前,他現在是無序的,但是這里面有兩個47,前面我們用黃色來標記,后面我們用藍色來標記,排玩序之后,這是不是有序了,那這兩個47肯定是挨著了,并且每次都是這個樣子,那他就是穩定的,如果他排完序之后變成這個樣子了,什么樣子呢,藍色本來是在后面的跑到前面了,前面的跑到后面去了,哪怕10次又一次是這個樣子呢,他也是不穩定的,但是你要記住,不管是穩定的還是不穩定的,他都是給你排序排好的,都排好序了,最終的結果都是有序的,只是要注意一個細節,有人說這有意義嗎,這很有意義,有時候我們沒有這方面的要求,但是有時候我們有穩定性的要求,如果沒有這個要求,無所謂,用哪一種都行,有這個要求呢,就說大家想一下,舉例子啊,我要按照學生的分數排序,但是1000個學生,他的分數肯定有一樣的,那就默認的按照學號排序了,相同分數按照學號排序,之前給了一個按照學號的,那分數可能就是這個樣子,它是沒有順序的,但是這個學號是小,這個學號的是不是大啊,我們希望排完序之后,如果他的分數一樣,學號小的在前面,學號大的排在后面,如果有這個要求的話,那我們就從穩定的排序,那如果沒有這個要求,只要分數一樣,誰先誰后無所謂,那不穩定的是不是也可以,這一點大家要知道了還有一個叫比較的排序,和非比較的排序,排序應該是離不了比較的,為什么,他為什么排序,你像這幾個數現在是無序的吧,你怎么就把它變成有序了,你總要拿著56和34比較一下吧,比較誰大誰小,然后再看怎么交換,怎么移動啊,是不是要做這些操作啊,所以大部分的排序啊,都是要基于比較的,都是離不了比較的,但是這個世界太大了,有些內容知識太多了,有時候有些排序是不需要比較的,這是另外一種思維,大部分的排序都是基于比較的要先判斷大小,再進行后一步操作,作為排序的依據,但是也有例外的啊,有些排序,比如計數排序,基數排序,這個是不需要比較的 基于比較的排序我們又可以分為4大類:1. 插入排序2. 交換排序3. 選擇排序4. 歸并排序冒泡就是交換的,選擇就是選擇的,插入就是插入的,你把這個3個最基本的掌握了,那你知道他們是基于什么的了這是我們所說的一個內容再往下看,看這張圖吧,這張圖我們就知道包括哪些內容了,排序算法包括比較排序和非比較排序,比較排序是占多數的插入排序:比如我們這里又兩個,最基本的是直接插入排序,他簡單,他的效率低,他的完善一下,比如變成希爾排序了選擇排序:這個選擇排序它是最基本的,效率低,簡單,他的效率是不是低,完善一下,基于同一種思路,堆排序交換排序:冒泡排序,這是最基本的,效率比較低,我們再完善一下,可能就成了快速排序了,插入,選擇,交換排序,是不是都有低級和高級之分,就是這些,三種基本排序,插入的,選擇的,冒泡的應該在插入排序里面還有另外一種排序,這個大家記住,一般來說是有八大排序類型,哪八大呢,插入排序里面還有一個折半插入排序,這樣一來比較排序里面就有八種排序,一共有8種了,歸并排序: 非比較排序里面就有計數排序,還有一個基數排序,這是一個總表,目前我先把這個表放到這兒,插入排序,選擇排序,交換排序,歸并排序,這些是不是基于比較的,比如基數排序,他沒有寫計數排序,還有一個計數排序,有時間復雜度,有空間復雜度,有穩定性,一會我們再來做相關的總結,而在這里我們先告訴大家這么一點,時間復雜度最高的是哪一個,是O(n2),n的平方,估計兩層循環的,這三個算法,是效率最低的三個,就是我們所說的直接插入,直接選擇,冒泡排序,算法最簡單,效率最低下,但是我們學習的時候,是不是先從這個開始的,先學簡單的,再學復雜的,簡單的我們可以優化成后面復雜一些的,建議大家這么多的排序,建議大家有限掌握著三個最基本的,然后重點來看一下后面快速的,因為它里面確實有內容要講,再看的話可以建議看看歸并排序,因為歸并里面也用到了遞歸,這一點和快速是一樣的建議優先掌握的是這三個:直接插入,簡單選擇,冒泡排序,快速排序這就是我們關于排序的一些內容

?

總結

以上是生活随笔為你收集整理的排序及其分类(一级)的全部內容,希望文章能夠幫你解決所遇到的問題。

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