每天学一个算法1-冒泡算法

原创 2015年07月10日 11:41:42

请用冒泡算法将下列数据排序
74,69,22,108,55,99

直接评论作答,可写思路,亦可贴代码

冒泡算法,即冒泡排序,主要思想是将小的数向前移,大的数向后移动。
时间复杂度:O(n^2)
冒泡算法是一种稳定排序算法(稳定的意思是指相同的元素不会交换两元素的位置)

C代码,直接使用1楼的:

#include <stdio.h>

int main(int argc, char *argv[]) {
    int max = 7;
    int a[] = {74,69,22,108,55,99,18};

    for (int i = 0 ;i < max; i++) {
        for (int j = 0; j < max-i-1; j++) {
            if (a[j] > a[j+1]) {
                int temp = a[j];
                a[j] = a[j+1];
                a[j+1] = temp;
            }

        }
    }

    for (int m =0; m<max;m++) {
        printf("%d \n",a[m]);
    }
}

相关文章推荐

《每天一算法》17/1/13--求字符串最后一个单词的长度

问题:一串字符串,求其最后一个单词的长度 分析 思路一:因为单词之间是通过“ ”(空格)来划分的,所以可以使用正则表达式对“ ”进行分割,创建由各个单词组成的数组,然后取最后一个数组求其长度; ...
  • lsy1072
  • lsy1072
  • 2017年01月13日 15:01
  • 73

每天一到算法练习题1 -- 一个正整数有可能可以被表示为 n(>=2) 个连续正整数之和

说明 此题在多种场合出现,包括百度程序之星2005年初赛。 难度:2星。 主要涉及的思想:递推。 题目: 题目描述:一个正整数有可能可以被表示为 n(>=2) 个连续正整数之和 ...
  • cpfeed
  • cpfeed
  • 2012年04月03日 01:02
  • 2176

每天学习一算法系列(28)(输入一个整数n,求从1 到n 这n 个整数的十进制表示中1 出现的次数)

题目: 输入一个整数n,求从1 到n 这n 个整数的十进制表示中1 出现的次数。 例如输入12,从1 到12 这些整数中包含1 的数字有1,10,11 和12,1 一共出现了5 次。 注:这是一...
  • yuucyf
  • yuucyf
  • 2011年08月18日 15:05
  • 4677

每天学习一算法系列(18)(n 个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m 个数字)

题目: n 个数字(0,1,…,n-1)形成一个圆圈,从数字0 开始,每次从这个圆圈中删除第m 个数字(第一个为当前数字本身,第二个为当前数字的下一个 数字), 当一个数字删除后,从被删除数字的下...
  • yuucyf
  • yuucyf
  • 2011年07月21日 17:28
  • 2627

编程产生一个int数组,长度为30,并向其中随机插入1-30,并且不能重复输出数组。实现一个冒泡排序算法对其进行排序,输出排序结果

创建控制台       using System; using System.Collections.Generic; using System.Linq; using System.Tex...

每天学习一算法系列(25)(一个台阶总共有n 级,如果一次可以跳1 级,也可以跳2 级,求总共有多少总跳法,并分析算法的时间复杂度。)

题目: 一个台阶总共有n 级,如果一次可以跳1 级,也可以跳2 级,求总共有多少总跳法,并分析算法的时间复杂度。 注: 这道题最近经常出现,包括MicroStrategy 等比较重视算法的公司都...
  • yuucyf
  • yuucyf
  • 2011年08月16日 14:51
  • 8246

一个很简单的冒泡排序算法

  • 2011年07月29日 15:13
  • 719KB
  • 下载

每天学习一算法系列(2)(把二元查找树转变成排序的双向链表,要求输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表.)

题目: 把二元查找树转变成排序的双向链表,要求输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。 要求不能创建任何新的结点,只调整指针的指向。 题目来自:http://topic.cs...
  • yuucyf
  • yuucyf
  • 2011年04月21日 12:32
  • 3284

【每天一个算法】一、交换两个整数

交换两个整数:通常有三种方法。 很简单,就是交换两个整数的值。 ====================================================== #include...

每天一个算法

2017年03月30号用两个栈实现一个队列,实现对了的两个函数 appendTail 和 deleteHead,分别完成在队列尾插入结点和在队列头部删除结点的功能/** * 用两个栈实现一个队列,实...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:每天学一个算法1-冒泡算法
举报原因:
原因补充:

(最多只允许输入30个字)