EDA365电子论坛网
标题:
插入排序
[打印本页]
作者:
Zedd
时间:
2020-3-12 10:33
标题:
插入排序
插入排序
' l+ a& W9 N& M
" p6 V4 l5 b3 h+ ^/ A$ ?( S
序:
0 j) l% L& w( S8 u( N0 u! w
遇到难题,陆陆续续耗费一年精力,将成功之际,突然发现建模和求解思路不够灵活,用错了算法,而换了思路和算法,几天就做好了。本次事件令我深受打击,究其原因:
1 E, z' |0 `; ] Z* t+ i
1.自己算法根基不牢,各种算法知识零碎,虽有对自己所接触到的算法有自己的理解,但从根本上未形成一套算法体系;
2 u: r. |" g" S% Y! P$ k
2.书本上的建模是作者的成果展示,读者不能体会到中间过程的艰难;实际问题往往非常复杂,建立数学模型很困难,自己基本上无实战经验;
; ~" \/ x, U$ Z
基于此次事件,为提高自己的算法水平和建模能力,今后的一年里,将根据《算法导论(第三版)》里所讨论的算法,挨着用matlab刷一遍,加固自己的算法底子;并结合自己生活中遇到的问题,尝试用建模来解决问题。
9 s- L! A) b" f( Y# D
6 L: h; H6 Z) u u# ~+ a; [3 w
(一)插入排序
' s$ i1 E; }5 T4 o% L K
%插入排序 从小到大排列
A=[5 2 4 6 1 3]%源数据
for j=2:length(A)%从2号位开始进行插入
key=A(j);%当前插入数字
i=j-1;%插入数字的地址的前一位,从后往前插入
while i>0 & A(i)>key% i>0已为当前排序数组最小值; A(i)>key 判断当前插入数字key和正在轮着比较数字的值大小
A(i+1)=A(i);%插入数字比判断的小,则判断位数字后移
i=i-1;%地址往前移动
end
A(i+1)=key;%在判断的当前位置插入当前判断数字(因为多减了一个地址,所以+1)
end
A %输出结果
0 |, U0 |* i: X; o& p, R
5 O% m7 z- X/ I' x
: \/ E( z! q6 o$ V+ X# O
作者:
gaoxings
时间:
2020-3-12 18:17
插入排序。
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2