加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

算法_冒泡程序

发布时间:2020-12-15 04:43:28 所属栏目:百科 来源:网络整理
导读:这里的第一个算法,没什么可以说的,一定是从最经典的冒泡算法开始,会列出python版和c版 冒泡算法很简单,就是像冒泡一样,把小的,也可以理解成轻的,从下面浮出来 比如有个list = [3,2,5,4,1],先用3和2比,2轻,2浮上去,3沉下去,3再和5比,3比较轻,位

这里的第一个算法,没什么可以说的,一定是从最经典的冒泡算法开始,会列出python版和c版

冒泡算法很简单,就是像冒泡一样,把小的,也可以理解成轻的,从下面浮出来

比如有个list = [3,2,5,4,1],先用3和2比,2轻,2浮上去,3沉下去,3再和5比,3比较轻,位置不变,5和4比,4浮上来,5和1比,1浮上来

第一次比完,得到[2,3,1,5],再进行第二次,第三次,直到把没有可以浮的了,就结束,通常这个算法的版本是嵌套循环,就是for for,好像掉进这个圈出不来了,其实不用全部比一遍,如果list初始就是[2,5],其实只要第一次就可以得到结果了,后面不是无用功么

好了,闲话不多,上代码,边嗑瓜子,边喝茶,边看代码,人生一大幸事啊

伪代码

序列 = [3,1>

python版

<span style="color: #0000ff">def<span style="color: #000000"> bubble_sort(num_list):
num_len =<span style="color: #000000"> len(num_list)
<span style="color: #0000ff">while<span style="color: #000000"> True:
n =<span style="color: #000000"> 0
<span style="color: #800000">'''<span style="color: #800000">range这里-1是因为下面的+1,如果不-1,下面+1后会报out of range错误,而且从算法来说最多查找len(list) - 1次,因此这个是没问题的<span style="color: #800000">'''
<span style="color: #0000ff">for i <span style="color: #0000ff">in range(num_len-1<span style="color: #000000">):
<span style="color: #0000ff">if num_list[i] > num_list[i+1<span style="color: #000000">]:
num_list[i],num_list[i+1] = num_list[i+1],num_list[i] <span style="color: #008000">#<span style="color: #008000">交换位置
n += 1
<span style="color: #0000ff">if n ==<span style="color: #000000"> 0:
<span style="color: #0000ff">break
<span style="color: #0000ff">return<span style="color: #000000"> num_list

<span style="color: #0000ff">if <span style="color: #800080">name == <span style="color: #800000">'<span style="color: #800000">main<span style="color: #800000">'<span style="color: #000000">:
num_list = [3,1<span style="color: #000000">]
<span style="color: #0000ff">print<span style="color: #000000"> num_list
num_list =<span style="color: #000000"> bubble_sort(num_list)
<span style="color: #0000ff">print num_list

c版

<div class="cnblogs_code">


= {3,1= sizeof(num)/4; //(i=0; iint bubble_sort(int num_list[],int num_len)
{
int i;
<span style="color: #0000ff">while
(1<span style="color: #000000">)
{
int n
=<span style="color: #000000"> 0;
<span style="color: #0000ff">for
(i=0;i<(num_len-1);i++<span style="color: #000000">)
{
<span style="color: #0000ff">if
(num_list[i] > num_list[i+1<span style="color: #000000">])
{
int temp
=<span style="color: #000000"> num_list[i];
num_list[i]
= num_list[i+1<span style="color: #000000">];
num_list[i
+1] =<span style="color: #000000"> temp;
n
++<span style="color: #000000">;
}
}
<span style="color: #0000ff">if(n ==<span style="color: #000000"> 0)
{
<span style="color: #0000ff">break<span style="color: #000000">;
}
}
<span style="color: #0000ff">return<span style="color: #000000"> 0;
}

不得不说,c真的很难适应,不过总会适应的,一起加油把

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读