教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 golang实现十大经典算法:插入排序

golang实现十大经典算法:插入排序

发布时间:2021-12-25   编辑:jiaochengji.com
教程集为您提供golang实现十大经典算法:插入排序等资源,欢迎您收藏本站,我们将为您提供最新的golang实现十大经典算法:插入排序资源
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"/></svg><h1>插入排序的要点是找一个合理的位置插进入</h1> <h2>插入排序优点:原数组有序会非常快,稳定</h2> <h2>golang数组没有插入的操作,所以得自己实现</h2> <pre><code class="lang-go hljs"> a <span class="token operator">:=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token builtin">int</span><span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">3</span><span class="token punctuation">,</span><span class="token number">4</span><span class="token punctuation">,</span><span class="token number">52</span><span class="token punctuation">,</span><span class="token number">2</span><span class="token punctuation">,</span><span class="token number">5</span><span class="token punctuation">,</span><span class="token number">7</span><span class="token punctuation">,</span><span class="token number">3</span><span class="token punctuation">,</span><span class="token number">7</span><span class="token punctuation">,</span><span class="token number">9</span><span class="token punctuation">}</span> <span class="token keyword">for</span> i<span class="token operator">:=</span><span class="token number">1</span><span class="token punctuation">;</span>i<span class="token operator"><</span><span class="token function">len</span><span class="token punctuation">(</span>a<span class="token punctuation">)</span><span class="token punctuation">;</span>i<span class="token operator"> </span><span class="token punctuation">{</span> todo <span class="token operator">:=</span> <span class="token boolean">true</span> <span class="token keyword">for</span> j<span class="token operator">:=</span>i<span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">;</span>j<span class="token operator">>=</span><span class="token number">0</span><span class="token punctuation">;</span>j<span class="token operator">--</span><span class="token punctuation">{</span> <span class="token keyword">if</span> a<span class="token punctuation">[</span>j<span class="token punctuation">]</span><span class="token operator"><</span>a<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">{</span> todo <span class="token operator">=</span> <span class="token boolean">false</span> <span class="token keyword">break</span> <span class="token punctuation">}</span> <span class="token keyword">if</span> j<span class="token operator">></span><span class="token number">0</span><span class="token operator">&&</span>a<span class="token punctuation">[</span>j<span class="token punctuation">]</span><span class="token operator">>=</span>a<span class="token punctuation">[</span>i<span class="token punctuation">]</span> <span class="token operator">&&</span> a<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token operator">></span>a<span class="token punctuation">[</span>j<span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">{</span> todo <span class="token operator">=</span> <span class="token boolean">false</span> mid <span class="token operator">:=</span> a<span class="token punctuation">[</span>i<span class="token punctuation">]</span> a <span class="token operator">=</span> <span class="token function">append</span><span class="token punctuation">(</span>a<span class="token punctuation">[</span><span class="token punctuation">:</span>i<span class="token punctuation">]</span><span class="token punctuation">,</span>a<span class="token punctuation">[</span>i<span class="token operator"> </span><span class="token number">1</span><span class="token punctuation">:</span><span class="token punctuation">]</span><span class="token operator">...</span><span class="token punctuation">)</span><span class="token comment">//将待插元素挪出来</span> tmp <span class="token operator">:=</span> <span class="token function">append</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token builtin">int</span><span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">,</span>a<span class="token punctuation">[</span>j<span class="token punctuation">:</span><span class="token punctuation">]</span><span class="token operator">...</span><span class="token punctuation">)</span><span class="token comment">//保存 插入位置后面所有元素</span> sli <span class="token operator">:=</span> <span class="token function">append</span><span class="token punctuation">(</span>a<span class="token punctuation">[</span><span class="token punctuation">:</span>j<span class="token punctuation">]</span><span class="token punctuation">,</span>mid<span class="token punctuation">)</span><span class="token comment">//将待插元素放入</span> a <span class="token operator">=</span> <span class="token function">append</span><span class="token punctuation">(</span>sli<span class="token punctuation">,</span>tmp<span class="token operator">...</span><span class="token punctuation">)</span><span class="token comment">//合并</span> <span class="token keyword">break</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token keyword">if</span> todo<span class="token operator">==</span><span class="token boolean">true</span><span class="token punctuation">{</span><span class="token comment">//说明最小插入到头部</span> mid <span class="token operator">:=</span> a<span class="token punctuation">[</span>i<span class="token punctuation">]</span> a <span class="token operator">=</span> <span class="token function">append</span><span class="token punctuation">(</span>a<span class="token punctuation">[</span><span class="token punctuation">:</span>i<span class="token punctuation">]</span><span class="token punctuation">,</span>a<span class="token punctuation">[</span>i<span class="token operator"> </span><span class="token number">1</span><span class="token punctuation">:</span><span class="token punctuation">]</span><span class="token operator">...</span><span class="token punctuation">)</span> sli <span class="token operator">:=</span> <span class="token function">append</span><span class="token punctuation">(</span>a<span class="token punctuation">[</span><span class="token punctuation">:</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">,</span>mid<span class="token punctuation">)</span> a <span class="token operator">=</span> <span class="token function">append</span><span class="token punctuation">(</span>sli<span class="token punctuation">,</span>a<span class="token operator">...</span><span class="token punctuation">)</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> </code></pre> 到此这篇关于“golang实现十大经典算法:插入排序”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
PHP学习之插入排序的实现
数据结构和算法(Golang实现)(10)基础知识-算法复杂度主方法
python排序算法有哪些?
php插入排序的实现代码
想系统学习GO语言(Golang
PHP中经典的四大排序算法
PHP Redis 有序集合实现 24 小时排行榜实时更新
golang实现十大经典算法:冒泡排序
php 插入排序程序代码
golang实现十大经典算法:插入排序

[关闭]
~ ~