演算法求最值
㈠ 遺傳演算法求最小值點
用遺傳演算法求已知函數的最小值點的方法:
1、首先建立自定義函數,f(x)
ga_fun=@(x)11*sin(6*x)+7*cos(5*x);
2、其二用ga()函數求解最小值
[x,fval,exitflag] = ga(ga_fun,1,[],[],[],[],lb)
3、然後用ezplot()函數或plot()函數,繪出其函數f(x)的圖形及最小值點
4、運行結果
㈡ 寫出一個求有限整數列中的最大值的演算法。
解:演算法如下: 第一步:先假定序列中的第一個整數為「最大值」; 第二步:將序列中的下一個整數與「最大值」比較,如果它大於此「最大值」,這時就假定「最大值」是這個扒滾整數; 第三皮斗步:如果序列中還燃此磨有其他整數,重復第二步; 第四步:在序列中一直到沒有可比的數為止,這時假定的 「最大值」就是這個序列中的最大值。 |
㈢ 如何求任意三個實數的最大值 請設計一個演算法
假設這三個數分別為:a、b、c
設枯慶畝最大的數為:max
如果 a >= b,則 max=a,反之 max=b;
如果 max >=c ,則 max=max ,反之 max=c;
這沒森樣三個數中最大差虧的數就是max 了。
㈣ 寫一個演算法,求單鏈表中的最大值
可以參考下面的代碼:
public static int FindMax(Node head)
{
if (head == null)
return 0;
int Max = head.value;
while(head.next != null)
{
if (head.next.value > Max)
Max = head.next.value;
head = head.next;
}
return Max;
(4)演算法求最值擴展閱讀:
單鏈表的具體存儲:
1、用一組任意的存儲單元來存放線性表的結點(這組存儲單元既可以是連續的,也可以是不連續的)
2、鏈表中結點的邏輯次序和物理次序不一定相同。為了能正確表示結點間的邏輯關系,在存儲每個結點值的同時,還必須存儲指示其後繼結點的地址(或位置)信息(稱為指針(pointer)或鏈(link))
鏈式存儲是最常用的存儲方式之一,它不僅可用來表示線性表,而且可用來表示各種非線性的數據結構。