教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 golang_算法: 插入排序算法

golang_算法: 插入排序算法

发布时间:2021-12-22   编辑: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><h4>插入排序算法-insertSort</h4> <ol><li>

分析问题
从数组第二位数字开始和前面的数字分别比较,如果前面的数字较大,则前面的数字后移

</li><li>

设计算法

<ol><li>确定arr[i]位置的元素</li><li>将它与之前的元素arr[i-1]进行比较</li><li>如果它之前的元素arr[i-1]较大,则将该位置的元素arr[i]赋值为它之前的元素,即arr[i]=arr[i-1]</li><li>再将i-1,重复2和3的动作,直至i-1>=0</li><li>如果arr[i-1]<arr[i],则将arr[i]插入再这个位置上</li></ol></li><li>

编写程序

<pre><code class="lang-go hljs"><span class="token keyword">func</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> arr <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 operator">-</span><span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">,</span> <span class="token operator">-</span><span class="token number">4</span><span class="token punctuation">}</span> <span class="token keyword">var</span> i<span class="token punctuation">,</span> j <span class="token builtin">int</span> <span class="token comment">//声明全局变量</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>arr<span class="token punctuation">)</span><span class="token punctuation">;</span> i<span class="token operator"> </span> <span class="token punctuation">{</span> <span class="token comment">//从第1位开始和前面的数比较,一直到最后一位数</span> temp <span class="token operator">:=</span> arr<span class="token punctuation">[</span>i<span class="token punctuation">]</span> <span class="token comment">//取出第i位,和前面i-1个数比较</span> <span class="token keyword">for</span> j <span class="token operator">=</span> i<span class="token punctuation">;</span> j <span class="token operator">></span> <span class="token number">0</span> <span class="token operator">&&</span> arr<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 operator">></span> temp<span class="token punctuation">;</span> <span class="token punctuation">{</span> <span class="token comment">//判断成功</span> arr<span class="token punctuation">[</span>j<span class="token punctuation">]</span> <span class="token operator">=</span> arr<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 comment">//前一位后移</span> j<span class="token operator">--</span> <span class="token punctuation">}</span> arr<span class="token punctuation">[</span>j<span class="token punctuation">]</span> <span class="token operator">=</span> temp <span class="token comment">//将比较的数字移动到空位上</span> <span class="token punctuation">}</span> fmt<span class="token punctuation">.</span><span class="token function">Println</span><span class="token punctuation">(</span>arr<span class="token punctuation">)</span> <span class="token punctuation">}</span> </code></pre> </li><li>

调试程序

</li></ol>

Output:

<pre><code>[-4 -2 1 3] </code></pre> 到此这篇关于“golang_算法: 插入排序算法”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
golang_算法: 插入排序算法
PHP学习之插入排序的实现
php插入排序的实现代码
java排序算法
javascript常见排序算法实现代码
php 插入排序程序代码
php实用快速排序算法的实例代码
golang_算法: 选择排序算法
php 实现冒泡排序的简单例子
php冒泡排序算法实现代码

[关闭]
~ ~