最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

冒泡排序(易懂)

互联网 admin 1浏览 0评论

冒泡排序(易懂)

文章目录

  • 引言
  • 一、算法思想
  • 二、实现步骤
    • 1.步骤流程
    • 2.代码实现(C)
  • 三、算法分析
  • 总结


引言:

算法重在思想,掌握其核心思想,然后才能熟练使用。

举个栗子:

时间:学校军训期间      对象:软件学院的军训

事件: 

教官:大声喊道,列队,分为两队,男生一队,女生一队

不过一会,学员就把队列站好了,看来对教官的恐惧还是一如既往的

教官:按照身高从低到高排,但是需要保持原来的队列,最多一下两个人换位置,不然会出现混乱的场面。

学员:我应该站在哪儿?

教官:最后一个人,跟你前面的比一下,谁高?

最后一个学员说:报告教官,我前面的人高;

教官:换位置;

学员:是

学员:接下来呢:

教官:还要我教你?你继续跟你前面的人比呀;

然后第一轮下来,最前面站着最矮的人,其余同理轮次

教官:给你们三分钟,给我排好。

。。。

学员:难度这就是传说中的冒泡排序?教官真厉害。


一、算法思想

每次比较相邻两数,顺序错则交换两数。

 

 


 

二、实现步骤

1.步骤流程

  1.选中两数:(一般从最右端开始)

2.比较两数,小则向前移动

3.直到与最后一个数比较

4.重复n-1趟

注:这里每一趟会比较8次


2.代码实现

代码如下(C):

#include<stdio.h>
int main()
{int a[100];int i,j,t,n; scanf("%d",&n);for(i=1;i<=n;i++)//输入n个数 {scanf("%d",&a[i]); }for(i=1;i<=n-1;i++)//冒泡排序核心算法;双重循环 {for(j=1;j<=n-i;j++){if(a[j]<a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}for(i=1;i<=n;i++){printf("%d ",a[i]); }getchar();//用于暂停程序,方便查看结果 return 0;
}

 


 

 

3.算法分析

时间复杂度:O(N*N)

这里的时间复杂度是非常高的


总结

冒泡排序,核心就是双重循环;

冒泡排序(易懂)

文章目录

  • 引言
  • 一、算法思想
  • 二、实现步骤
    • 1.步骤流程
    • 2.代码实现(C)
  • 三、算法分析
  • 总结


引言:

算法重在思想,掌握其核心思想,然后才能熟练使用。

举个栗子:

时间:学校军训期间      对象:软件学院的军训

事件: 

教官:大声喊道,列队,分为两队,男生一队,女生一队

不过一会,学员就把队列站好了,看来对教官的恐惧还是一如既往的

教官:按照身高从低到高排,但是需要保持原来的队列,最多一下两个人换位置,不然会出现混乱的场面。

学员:我应该站在哪儿?

教官:最后一个人,跟你前面的比一下,谁高?

最后一个学员说:报告教官,我前面的人高;

教官:换位置;

学员:是

学员:接下来呢:

教官:还要我教你?你继续跟你前面的人比呀;

然后第一轮下来,最前面站着最矮的人,其余同理轮次

教官:给你们三分钟,给我排好。

。。。

学员:难度这就是传说中的冒泡排序?教官真厉害。


一、算法思想

每次比较相邻两数,顺序错则交换两数。

 

 


 

二、实现步骤

1.步骤流程

  1.选中两数:(一般从最右端开始)

2.比较两数,小则向前移动

3.直到与最后一个数比较

4.重复n-1趟

注:这里每一趟会比较8次


2.代码实现

代码如下(C):

#include<stdio.h>
int main()
{int a[100];int i,j,t,n; scanf("%d",&n);for(i=1;i<=n;i++)//输入n个数 {scanf("%d",&a[i]); }for(i=1;i<=n-1;i++)//冒泡排序核心算法;双重循环 {for(j=1;j<=n-i;j++){if(a[j]<a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}for(i=1;i<=n;i++){printf("%d ",a[i]); }getchar();//用于暂停程序,方便查看结果 return 0;
}

 


 

 

3.算法分析

时间复杂度:O(N*N)

这里的时间复杂度是非常高的


总结

冒泡排序,核心就是双重循环;

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论