教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 四、Golang学习笔记:go实现冒泡排序算法和选择排序算法

四、Golang学习笔记:go实现冒泡排序算法和选择排序算法

发布时间:2022-02-13   编辑:jiaochengji.com
教程集为您提供四、Golang学习笔记:go实现冒泡排序算法和选择排序算法等资源,欢迎您收藏本站,我们将为您提供最新的四、Golang学习笔记:go实现冒泡排序算法和选择排序算法资源
<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>
<h2>Golang实现两种排序算法</h2>

<h3>文章目录</h3> <ul><li><ul><li>Golang实现两种排序算法</li><li><ul><li>冒泡排序</li><li>选择排序</li></ul></li></ul></li></ul>

<h3>冒泡排序</h3>

排序:将一组数据按指定顺序排序

<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> <span class="token comment">//排序比较的过程</span> <span class="token comment">// s := []int{9 8 7 6 5 4 3 2 1 0}</span> <span class="token comment">//第一趟: 8 7 6 5 4 3 2 1 0 9 交换了9次 i=0 j=len(s)-1-i i是趟数,j是交换次数</span> <span class="token comment">//第二趟: 7 6 5 4 3 2 1 0 8 9 交换了8次 i=1 j=len(s)-1-i</span> <span class="token comment">//第三趟: 6 5 4 3 2 1 0 7 8 9 交换了7次 i=1 j=len(s)-1-i</span> <span class="token comment">//......</span> <span class="token comment">//经过九趟比较,交换1次完成排序</span> s <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">9</span><span class="token punctuation">,</span><span class="token number">8</span><span class="token punctuation">,</span><span class="token number">7</span><span class="token punctuation">,</span><span class="token number">6</span><span class="token punctuation">,</span><span class="token number">5</span><span class="token punctuation">,</span><span class="token number">4</span><span class="token punctuation">,</span><span class="token number">3</span><span class="token punctuation">,</span><span class="token number">2</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">}</span> <span class="token keyword">var</span> temp <span class="token builtin">int</span> <span class="token keyword">for</span> i<span class="token operator">:=</span><span class="token number">0</span><span class="token punctuation">;</span>i<span class="token operator"><</span><span class="token function">len</span><span class="token punctuation">(</span>s<span class="token punctuation">)</span><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 punctuation">{</span><span class="token comment">//趟数</span> <span class="token keyword">for</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 function">len</span><span class="token punctuation">(</span>s<span class="token punctuation">)</span><span class="token operator">-</span><span class="token number">1</span><span class="token operator">-</span>i<span class="token punctuation">;</span>j<span class="token operator"> </span><span class="token punctuation">{</span><span class="token comment">//交换次数</span> <span class="token keyword">if</span> s<span class="token punctuation">[</span>j<span class="token punctuation">]</span><span class="token operator">></span>s<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> temp<span class="token operator">=</span>s<span class="token punctuation">[</span>j<span class="token punctuation">]</span> s<span class="token punctuation">[</span>j<span class="token punctuation">]</span><span class="token operator">=</span>s<span class="token punctuation">[</span>j<span class="token operator"> </span><span class="token number">1</span><span class="token punctuation">]</span> s<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 punctuation">}</span> fmt<span class="token punctuation">.</span><span class="token function">Println</span><span class="token punctuation">(</span>s<span class="token punctuation">)</span> <span class="token punctuation">}</span> </code></pre> <h3>选择排序</h3> <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> <span class="token comment">//在一组数中选择最小的放到首位</span> <span class="token comment">//考虑第一趟的情况</span> <span class="token comment">//1.找出切片中最小的数据</span> <span class="token comment">//2.和切片中第一个数进行位置的交换</span> s <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">5</span><span class="token punctuation">,</span><span class="token number">9</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">2</span><span class="token punctuation">,</span><span class="token number">7</span><span class="token punctuation">}</span> <span class="token keyword">for</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 function">len</span><span class="token punctuation">(</span>s<span class="token punctuation">)</span><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 punctuation">{</span><span class="token comment">//j控制趟数</span> min <span class="token operator">:=</span> s<span class="token punctuation">[</span>j<span class="token punctuation">]</span> minIndex <span class="token operator">:=</span> j<span class="token comment">//存储最小数下标</span> <span class="token keyword">for</span> i<span class="token operator">:=</span>j<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>s<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> <span class="token keyword">if</span> min<span class="token operator">></span>s<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">{</span> min <span class="token operator">=</span> s<span class="token punctuation">[</span>i<span class="token punctuation">]</span> minIndex <span class="token operator">=</span> i<span class="token comment">//记录下标</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token keyword">if</span> minIndex <span class="token operator">!=</span> j<span class="token punctuation">{</span><span class="token comment">// =0表示第一个数是最小的,没有交换</span> s<span class="token punctuation">[</span>j<span class="token punctuation">]</span><span class="token punctuation">,</span>s<span class="token punctuation">[</span>minIndex<span class="token punctuation">]</span> <span class="token operator">=</span> s<span class="token punctuation">[</span>minIndex<span class="token punctuation">]</span><span class="token punctuation">,</span>s<span class="token punctuation">[</span>j<span class="token punctuation">]</span> fmt<span class="token punctuation">.</span><span class="token function">Println</span><span class="token punctuation">(</span>s<span class="token punctuation">)</span> <span class="token punctuation">}</span> <span class="token comment">/* //第二趟 min = s[1] minIndex := 1//存储最小数下标 for i:=1 1;i<len(s);i {//初始值为1,不与自己比较 if min>s[i]{ min = s[i] minIndex = i//记录下标 } } if minIndex != 1{//=0没有交换 s[0],s[minIndex] = s[minIndex],s[1] fmt.Println(s) } */</span> <span class="token punctuation">}</span> </code></pre> 到此这篇关于“四、Golang学习笔记:go实现冒泡排序算法和选择排序算法”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
php 冒泡排序的实现代码
php 实现冒泡排序的简单例子
php冒泡排序的小例子
PHP实现几个排序和查找算法
php 数组排序方法分享(冒泡排序、选择排序)
php冒泡排序算法实现代码
四、Golang学习笔记:go实现冒泡排序算法和选择排序算法
php 选择排序的实现代码
php选择排序算法实现代码
javascript常见排序算法实现代码

[关闭]
~ ~