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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

java减治法深度优先查找_排序|减治法实现排序

發布時間:2024/9/27 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java减治法深度优先查找_排序|减治法实现排序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

總結一下排序嘿;)

有插入排序和拓撲排序。

1.插入排序/直接插入排序

假設對較小的數組A[0...n-2]已經排好序了,然后把A[n-1]找到一個合適的位置插進去。一般來說是從右向左掃描這個有序的數組,直到遇到第一個小于A[n-1]的元素,然后把A[n-1]插在這個元素的后面,插入的這個位置往往不是最終的位置。

for ( int i = 1; i < a.length; i++) {

int v =a[i];

int j=i-1;

while(j>=0&& a[j]>v) {

a[j+1] = a[j];

j--;

}

a[j+1]=v;

}

最壞的情況是輸入一個嚴格遞減的數組,C(worst)=((n-1)*n)/2。在這種情況下和蠻力法中的冒泡排序的鍵值比較次數是完全相同的。最好的情況是按照升序排列的數組,C(best)=n-1。對該算法平均效率的分析主要基于對無序數組的研究,平均比較次數是降序數組的一半,C(avg)=(n^2)/4;

2.拓撲排序

為了使拓撲排序成為可能,圖必須是一個無環有向圖。如果一個圖沒有回路,拓撲排序有解。有兩種高效的算法,既可以驗證一個有向圖是否是一個無環有向圖,又可以在是情況下,輸入拓撲排序的一個頂點序列。

第一種:深度優先查找的簡單應用。

執行一次DFS遍歷,并記住頂點變成死端(即退出遍歷棧)的順序。將該次序反過來就得到拓撲排序問題的一個解。

第二種:基于減治技術的直接實現。

在有向圖中求出一個源(一個沒有任何輸入邊的頂點),把它和所有從它出發的邊都刪除。如果有多個這樣的源,隨意選擇一個。源不存在,則無解。頂點被刪除的次序是拓撲排序問題的一個解。

源刪除算法獲得的解和基于DFS的算法求得的解不同,兩者都正確,所以,拓撲排序問題可能會有若干個不同的可選解。

總結

以上是生活随笔為你收集整理的java减治法深度优先查找_排序|减治法实现排序的全部內容,希望文章能夠幫你解決所遇到的問題。

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