1. 排序方法都有哪幾種,比如1、2、3。。。。。。甲乙丙丁等
排序方法一般都就那幾種。像冒泡排序,直接插入排序,快速排序,簡單選擇排序,希爾排序,堆排序。其排序介紹自己看吧。
1、冒泡排序屬於穩定排序,是一種藉助「交換」進行排序的方法。首先要將第一個記錄的關鍵字和第二個記錄的關鍵字進行比較,若為逆序,則將兩個記錄交換之,然後比較第二個記錄與第三個記錄的關鍵字,以此類推,直至第n-1個記錄與第n個記錄的關鍵字進行比較為止,這一過程稱為第一趟冒泡排序,其結果使得關鍵字最大的記錄被安置在最後一個記錄的位置上;然後進行第二趟冒泡排序,對前N-1個記錄進行同樣操作;以此類推,直到在一趟排序過程中沒有進行過交換記錄的操作為止。
2、直接插入排序屬於穩定的排序,每次從無序表中取出第一個元素,把它插入到有序表的合適位置,使有序表仍然有序。第一趟將待比較的數值與它的前一個數值進行比較,當前一數值比待比較數值大的情況下繼續循環比較,依次進行下去,進行了(n-1)趟掃描以後就完成了整個排序過程,結束該次循環。
3、快速排序屬於不穩定排序,是對起泡排序的一種改進。它的基本思想是,通過一趟排序將待排記錄分割成獨立的兩部分,其中一部分記錄的關鍵字均比另一部分記錄的關鍵字小,則可分別對這兩部分記錄繼續進行排序,以達到整個序列有序。假設待排序的序列為{R.[s],R.[s+1],…….,R.[t]},首先任意選取一個記錄,然後按下述原則從新排序記錄:將關鍵字較他小的記錄都安置在他的位置之前,將所有關鍵字較他大的記錄都安置在他的位置後面。由此可以該「樞軸」記錄最後所落的位置i作為分界線,將序列{R[s],R[s+1]…….R[t]}分割成兩個子序列{R[s],R[s+1]…..R[i-1]}和{R[i+1]……R[t]},這個過程稱作一趟快速排序。一趟快速排序的具體做法是:附設兩個指針low和high,它們的初值分別指向數組第一個數據和最後一個數據,將樞軸記錄暫存在R[0]的位置上排序過程中只作R[low]或R[high]的單向移動,直至一趟排序結束後再將樞軸記錄移至正確位置上。
4、簡單選擇排序屬於不穩定排序,基本思想是,每一趟在n-i+1(i=1,2,…n-1)個記錄中選取關鍵字最小的記錄作為有序序列中第i個記錄。第i趟簡單選擇排序是指通過n-i次關鍵字的比較,從n-i+1個記錄中選出關鍵字最小的記錄,並和第i個記錄進行交換。共需進行n-1趟比較,直到所有記錄排序完成為止。例如:進行第i趟選擇時,從當前候選記錄中選出關鍵字最小的k號記錄,並和第i個記錄進行交換。
5、希爾排序屬於不穩定排序,也是一種屬插入排序類,它的基本思想是:先將整個待排記錄序列分割稱為若干個子序列分別進行直接插入排序,待整個序列中記錄「基本有序」時,再對全體記錄進行一次直接插入排序。希爾排序的一個特點是:子序列的構成不是簡單的「逐段分割」,而是將相隔某個「增量」的記錄組成一個子序列。
6、堆排序屬於不穩定排序,它的基本思想是,先將初始文件R[1..n]建成一個大根堆,此堆為初始的無序區,再將關鍵字最大的記錄R[1](即堆頂)和無序區的最後一個記錄R[n]交換,由此得到新的無序區R[1..n-1]和有序區R[n],且滿足R[1..n-1].keys≤R[n].key;由於交換後新的根R[1]可能違反堆性質,故應將當前無序區R[1..n-1]調整為堆,然後再次將R[1..n-1]中關鍵字最大的記錄R[1]和該區間的最後一個記錄R[n-1]交換,由此得到新的無序區R[1..n-2]和有序區R[n-1..n],且仍滿足關系R[1..n- 2].keys≤R[n-1..n].keys,同樣要將R[1..n-2]調整為堆。直到無序區只有一個元素為止
2. 排序法都有哪些
一、插入排序(InsertionSort)
1.基本思想:
每次將一個待排序的數據元素,插入到前面已經排好序的數列中的適當位置,使數列依然有序;直到待排序數據元素全部插入完為止。
2.排序過程:
【示例】:
[初始關鍵字][49]38659776132749
J=2(38)[3849]659776132749
J=3(65)[384965]9776132749
J=4(97)[38496597]76132749
J=5(76)[3849657697]132749
J=6(13)[133849657697]2749
J=7(27)[13273849657697]49
J=8(49)[1327384949657697]
3. 排序法都有哪些
排序法可分為簡單排序法和交替排序法。
4. 幾種常見簡單排序演算法
排序演算法一般分為以下幾種:
(1)非線性時間比較類排序:交換類排序(快速排序和冒泡排序)、插入類排序(簡單插入排序和希爾排序)、選擇類排序(簡單選擇排序和堆排序)、歸並排序(二路歸並排序和多路歸並排序);
(2)線性時間非比較類排序:計數排序、基數排序和桶排序。
5. JAVA中有哪幾種常用的排序方法
1、冒泡排序
冒泡排序是一個比較簡單的排序方法。在待排序的數列基本有序的情況下排序速度較快。若要排序的數有n個,則需要n-1輪排序,第j輪排序中,從第一個數開始,相鄰兩數比較,若不符合所要求的順序,則交換兩者的位置;直到第n+1-j個數為止,第一個數與第二個數比較,第二個數與第三個數比較,......,第n-j個與第n+1-j個比較,共比較n-1次。此時第n+1-j個位置上的數已經按要求排好,所以不參加以後的比較和交換操作。例如:第一輪排序:第一個數與第二個數進行比較,若不符合要求的順序,則交換兩者的位置,否則繼續進行二個數與第三個數比較......。直到完成第n-1個數與第n個數的比較。此時第n個位置上的數已經按要求排好,它不參與以後的比較和交換操作;第二輪排序:第一個數與第二個數進行比較,......直到完成第n-2個數與第n-1個數的比較;......第n-1輪排序:第一個數與第二個數進行比較,若符合所要求的順序,則結束冒泡法排序;若不符合要求的順序,則交換兩者的位置,然後結束冒泡法排序。
共n-1輪排序處理,第j輪進行n-j次比較和至多n-j次交換。
從以上排序過程可以看出,較大的數像氣泡一樣向上冒,而較小的數往下沉,故稱冒泡法。
2、選擇排序
選擇法的原理是先將第一個數與後面的每一個數依次比較,不斷將將小的賦給第一個數,從而找出最小的,然後第二個數與後面的每一個數依次比較,從而找出第二小的,然後第三個數與後面的
3、插入排序
插入排序的原理是對數組中的第i個元素,認為它前面的i-1個已經排序好,然後將它插入到前面的i-1個元素中。插入排序對少量元素的排序較為有效.
4、快速排序
快速排序是對冒泡排序的一種改進。它的基本思想是:通過一次排序將要排序的數據分割成獨立的兩部分,其中一部分的所有數據都比另外一部分的所有數據都要小,然後再按次方法對這兩部分數據分別進行快速排序,整個排序過程可以遞歸進行,以此大道整個數據變成有序序列。
6. 常見的排序方法有哪些
一、直接插入排序(插入排序)。二、希爾排序(插入排序)三、冒泡排序(交換排序)四、快速排序(交換排序)五、直接選擇排序(選擇排序)六、堆排序七、歸並排序
八、
基數排序
7. Excel表格排序的幾種方法
方法一:日期按時間排序
進入到操作界面,如圖所示,首先選中需要排序的單元格區域,在選中開始菜單上的「數據」,至「排序」選項卡,在彈出的「自定義排序次序」中找到日期的排序方式即可,然後在點擊確定即可完成操作,
相關教程:excel輸入日期
現在我們來預覽排序完成後的效果吧。
方法二:數據按住數字大小排序
進入到操作幾面,小編隨便輸入幾個數字
選中需要排序的單元格,在選中開始菜單上的「數據」,至「排序」選項卡,然後在點擊「選項」命令,彈出「排序選項」,然後直接點擊「按列排序」方式,即可這樣單元格裡面的數字就是按列小到大的排序了。
方法三:名稱按字母來排序
小編就隨便輸入幾個名字。同樣按照上面的方式,進入到排序選項窗口
然後在「排序選項」上選擇「按字母排序」即可完成操作了
你可以還想了解:excel中如何拆分和凍結單元格
方法四:當然,這幾種方式還是比較簡單的,常用的幾種方法。有的時候需要按別的方式排序的話,就可以再「自定義選項」中添加排序方式即可
以上就是Excel表格排序的幾種方法。所有的排序要先選擇要排序的內容,要包括每列表頭,然後點「數據
-
排序
」在對話框里選擇「主關鍵字」、或次關鍵字,再選擇排序順序,排序方式按從大到小或從小到大。
8. 排序有幾種方法
一. 冒泡排序
冒泡排序是是一種簡單的排序演算法。它重復地遍歷要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把它們交換過來。遍歷數列的工作是重復的進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢「浮」到數列的頂端
1.冒泡排序演算法的運作如下:
(1)比較相鄰的元素。如果第一個比第二個大(升序),就交換他們兩個
(2)對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素還是最大的數
(3)針對所有的元素重復以上的步驟,除了最後一個
二. 選擇排序
選擇排序是一種簡單直觀的排序演算法。他的工作原理如下:
首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置(末尾位置),然後,再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢
選擇排序的主要優點與數據移動有關。如果某個元素位於正確的最終位置上,則它不會被移動。選擇排序每次交換一對元素,他們當中至少有一個將被移到最終位置上,因此對n個元素的表進行排序總共進行至多n-1次交換。在所有的完全依靠交換去移動 元素的排序方法中,選擇排序屬於非常好的一種
三. 插入排序
插入排序是一種簡單直觀的排序演算法。它的工作原理是通過構建有序序列,對於未排序數據,在已排序序列中從後向前掃描,找到相應位置並插入。插入排序在從後向前掃描的過程中,需要反復把已排序元素逐步向後挪位,為最新元素提供插入空間
四. 快速排序
快速排序,又稱劃分交換排序。通過一趟排序將要排序的數據分割成獨立的兩部分,其中一部分的所有數據都要小,然後再按此方法對兩部分數據分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數據變成有序序列
五 希爾排序過程
希爾排序是插入排序的一種,也稱縮小增量排序,是直接插入排序演算法的一種更高效的改進版本。希爾排序是非穩定排序演算法。希爾排序是把記錄按下標的一定增量分組,對每組使用直接插入排序演算法排序;隨著增量逐漸減少,每組包含的關鍵詞越來越多,當增量減至1時,整個文件恰被分成一組,演算法便終止。
六. 歸並排序
歸並排序是採用分治法(把復雜問題分解為相對簡單的子問題,分別求解,最後通過組合起子問題的解的方式得到原問題的解)的一個非常典型的應用。歸並排序的思想就是先遞歸分解數組,再合並數組
將數組分解最小之後,然後合並兩個有序數組,基本思路是比較兩個數組的最前面的數,水小九先取誰,取了後相應的指針就往後移一位。然後比較,直至一個數組為空,最後把另一個數組的剩餘部分復制過來即可
9. 幾種排序方法
這兩天復習了一下排序方面的知識,現將目前比較常見的整理一下。 選擇排序選擇排序的思想是首先先找到序列中最大元素並將它與序列中最後一個元素交換,然後找下一個最大元素並與倒數第二個元素交換,依次類推。此排序很簡單,這不做多說,代碼實現如下:View Code插入排序演算法流程:1. 從第一個元素開始,該元素可以認為已經被排序 2. 取出下一個元素,在已經排序的元素序列中從後向前掃描 3. 如果該元素(已排序)大於新元素,將該元素移到下一位置 4. 重復步驟3,直到找到已排序的元素小於或者等於新元素的位置 5. 將新元素插入到下一位置中 6. 重復步驟2View Code冒泡排序依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即在第一趟:首先比較第1個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。至此第一趟結束,將最大的數放到了最後。在第二趟:仍從第一對數開始比較(因為可能由於第2個數和第3個數的交換,使得第1個數不再小於第2個數),將小數放前,大數放後,一直比較到倒數第二個數(倒數第一的位置上已經是最大的),第二趟結束,在倒數第二的位置上得到一個新的最大數(其實在整個數列中是第二大的數)。如此下去,重復以上過程,直至最終完成排序。 View Code合並排序在介紹合並排序之前,首先介紹下遞歸設計的技術,稱為分治法。分治法的核心思想是:當問題比較小時,直接解決。當問題比較大時,將問題分為兩個較小的子問題,每個子問題約為原來的一半。使用遞歸調用解決每個子問題。遞歸調用結束後,常常需要額外的處理,將較小的問題的結果合並,得到較大的問題的答案。 合並排序演算法在接近數組中間的位置劃分數組,然後使用遞歸運算對兩個一半元素構成的數組進行排序,最後將兩個子數組進行合並,形成一個新的已排好序的數組。 代碼如下:View Code快速排序快速排序與合並排序有著很多相似性。將要排序的數組分成兩個子數組,通過兩次遞歸調用分別對兩個數組進行排序,再將已經排好序的兩個數組合並成一個獨立的有序數組。但是,將數組一分為二的做法比合並排序中使用的簡單方法復雜的多。它需要將所有小於或者等於基準元素的元素放置到基準元素前面的位置,將大於基準的元素放置到基準後面的位置。 View Code堆排序View Code大概常用的幾種排序就這幾種,希望大家多多指正。