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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

贪心算法之最优装载

發布時間:2023/11/27 生活经验 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 贪心算法之最优装载 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

貪心算法通過一系列的選擇來得到問題的解。它所做的每一個選擇都是當前狀態下局部最好選擇。從許多的貪心算法求解的問題可以看到可用貪心算法求解的問題一般具有兩個重要的性質:貪心選擇性質和最優子結構性質。

1、貪心選擇性質

貪心選擇性質是 指所求問題的整體最優解可以通過一系列局部最優的選擇,即貪心選擇來達到。與動態規劃算法的不同之處是貪心算法只依賴在當前狀態下做出最優選擇,然后再去解做出這個選擇后產生的相應的子問題。貪心算法依賴于以往做出的選擇,但是絕不依賴未來做出的選擇。所以貪心算法是自頂向下解決問題的。

2、最優子結構性質

當一個問題的最優解包含其子問題的最優解時,稱此問題具有最優子結構性質。一個問題是否具有最優子結構性質是該問題可用動態規劃算法或貪心算法求解的關鍵特征。

下面是貪算法的最簡單的一個實例,最優裝載問題:

問題描述:

有一批集裝箱要裝上一艘載重量為c的貨船。其中集裝箱i的重量為n[i],問在不受體積限制的情況下,將盡可能多的集裝箱裝上船?

貪心算法之最優裝載算法:
1、選擇重量小的先裝,所以首先需要排序。
2、不斷裝載,則是循環,要輸出最優裝載方案,則是需要進行記錄裝載
到的位置的。使用loading記錄現在的裝載量

void Load(int data[],int n,int c)		//最優裝載函數
{int pos=0,i=0;int loading=0;InsertSort(data,n);	//排序while(loading<c&&i<n)	//如果總和還是小于c,i就有可能持續增大越界,這里需要加上條件限制{loading+=data[i];i++;}pos=--i;		//循環內部i在loading不滿足小于c時還加了1,這里減掉cout<<"最優裝載方案為:"<<endl;for(int j=0;j<=pos;j++)cout<<":"<<data[j]<<"-->"<<endl;cout<<"最多可以裝載的集裝箱數:"<<pos<<endl;}

?該問題的時間復雜度取決于排序函數的時間復雜度,這里采用的直接插入排序,所以時間復雜度為O(n^2)

?

?

轉載于:https://www.cnblogs.com/fistao/archive/2013/04/04/2999794.html

總結

以上是生活随笔為你收集整理的贪心算法之最优装载的全部內容,希望文章能夠幫你解決所遇到的問題。

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