冒泡排序c语言 订阅
将被排序的记录数组R[1..n]垂直排列,每个记录R看作是重量为R.key的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,就使其向上"飘浮"。如此反复进行,直到最后任何两个气泡都是轻者在上,重者在下为止。 展开全文
将被排序的记录数组R[1..n]垂直排列,每个记录R看作是重量为R.key的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,就使其向上"飘浮"。如此反复进行,直到最后任何两个气泡都是轻者在上,重者在下为止。
信息
属    于
c语言
类    型
冒泡排序
中文名
c语言冒泡排序
属    性
计算机
c语言冒泡排序程序
冒泡排序
收起全文
精华内容
下载资源
问答
  • 冒泡排序C语言

    2016-02-18 18:57:23
    冒泡排序C语言实现,很好用,提供给大家一起分享。
  • C语言冒泡排序C语言冒泡排序C语言冒泡排序
  • 冒泡排序c语言

    2012-09-10 14:48:09
    冒泡排序冒泡排序冒泡排序
  • 冒泡排序C语言实现

    2011-12-03 16:24:49
    冒泡排序C语言实现 冒泡排序C语言实现 冒泡排序C语言实现
  • 冒泡排序C语言源码

    2015-11-15 19:17:35
    冒泡排序C语言源码 非常详细的注释 冒泡排序C语言源码 非常详细的注释
  • 冒泡排序 C语言

    2013-05-02 18:49:08
    冒泡排序 课后作业 经典的课后习题详解 你妹的长度还不够啊
  • 冒泡排序 c语言

    2018-07-20 12:50:30
    冒泡排序算法属于交换排序,基本思想就是两两比较,然后交换位置。 这里给出一个例子,随机生成10个数字,从大到小排序。 程序如下: #include <stdio.h> #include <stdlib.h> #...

    冒泡排序算法属于交换排序,基本思想就是两两比较,然后交换位置。
    这里给出一个例子,随机生成10个数字,从大到小排序。
    程序如下:

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    int main()
    {
        int a[10],i,j,temp;
        srand((unsigned int)time(NULL));
        for(i = 0;i<10;i++)
            a[i] = rand()%100+1;//随机生成100以内10个数字
        for(i = 0;i<10;i++)
          for(j = 0;j<10-i;j++)
          {
              if(a[j]<a[j+1])
              {//冒泡
                  temp = a[j];
                  a[j] = a[j+1];
                  a[j+1] = temp;
              }
          }
        for(i = 0;i<10;i++)
          printf("%d ",a[i]);
        return 0;
    }

    转载请注明出处!

    展开全文
  • 冒泡排序(C语言实现)导语:C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。下面我们来看看冒泡排序(C语言实现),希望对大家有所...

    冒泡排序(C语言实现)

    导语:C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。下面我们来看看冒泡排序(C语言实现),希望对大家有所帮助。

    冒泡排序是一种简单常用的交换排序方法。

    集体实现的算法思路:将待排序记录中第一个记录与第二个记录做比较,如果第一个记录大于第二个记录,则交换两个记录的位置,然后继续将第一个记录与第三个记录进行比较,做同样的.处理,依次类推,直到序列中最后一个记录和第一个记录进行比较,这样就把最小的值排在序列的第一个位置,接下来第二个位置的元素实现和第一个元素相同的操作把第二小的元素放在第二个位置,依次类推,完成整个排序。

    具体的冒泡排序算法实现如下(按照逐渐递增进行排序):

    /* 冒泡排序的函数实现

    * array[] : 待排序数组

    * length : 待排序数组的长度

    */

    void bubble_sort(int array[], int length)

    {

    int i, j;

    int temp; // 用来存放临时的元素值

    for(i = 0; i < length - 1; i++)

    {

    for(j = i + 1; j < length; j++)

    {

    if(array[i] > array[j])

    {

    temp = array[i];

    array[i] = array[j];

    array[j] = temp;

    }

    }

    }

    }

    测试代码的实现如下:

    /* 程序的入口函数 */

    int main()

    {

    int a[ARRAY_LENGTH];

    int i;

    /* 输入10个整形元素 */

    printf("Input %d numbers :

    ", ARRAY_LENGTH);

    for(i = 0; i < ARRAY_LENGTH; i++)

    {

    scanf("%d", &a[i]);

    }

    printf("****************************************************************

    ");

    /* 把排序前元素都打印出来 */

    printf("The elements before sort is :

    ");

    for(i = 0; i< ARRAY_LENGTH; i++)

    {

    printf("%d ", a[i]);

    }

    printf("

    ");

    printf("****************************************************************

    ");

    /* 对元素进行有小到大的顺序进行排序 */

    bubble_sort(a, ARRAY_LENGTH);

    /* 把排序后元素都打印出来 */

    printf("The elements after sort is :

    ");

    for(i = 0; i < ARRAY_LENGTH; i++)

    {

    printf("%d ", a[i]);

    }

    printf("

    ");

    return 0;

    }

    展开全文
  • -八种基本的排序(1)——冒泡排序(C语言实现)八种基本的排序(2)——直接选择排序(C语言实现)八种基本的排序(3)——插入排序(C语言实现)八种基本的排序(4)——归并排序(C语言实现)八种基本的排序(5)——快速排序(C语言...

    -

    八种基本的排序(1)——冒泡排序(C语言实现)

    八种基本的排序(2)——直接选择排序(C语言实现)

    八种基本的排序(3)——插入排序(C语言实现)

    八种基本的排序(4)——归并排序(C语言实现)

    八种基本的排序(5)——快速排序(C语言实现)

    目录

    -

    八种基本的排序(1)——冒泡排序(C语言实现)

    八种基本的排序(2)——直接选择排序(C语言实现)

    八种基本的排序(3)——插入排序(C语言实现)

    八种基本的排序(4)——归并排序(C语言实现)

    八种基本的排序(5)——快速排序(C语言实现)

    目录

    冒泡排序(Bubble Sort)

    原理

    时间复杂度

    算法稳定性

    源代码+注释

    函数版

    普通版

    >>>我的博客<<<

    冒泡排序(Bubble Sort)

    是一种计算机科学领域的较简单的排序算法。1

    它重复地走访过要排序的元素列,一次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。

    这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。

    原理

    冒泡排序算法的原理如下:

    1.比较相邻的元素。如果第一个比第二个大,就交换他们两个,这样是从小到大排。

    (如果第一个比第二个小,交换 , 那就是从大到小排)

    2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

    3.针对所有的元素重复以上的步骤,除了最后一个。

    4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

    时间复杂度

    若文件的初始状态是正序的,一趟扫描即可完成排序。所需的关键字比较次数CC和记录移动次数MM均达到最小值:Cmin=n−1Cmin=n−1,Mmin=0Mmin=0 。

    所以,冒泡排序最好的时间复杂度为 O(n)O(n) 。

    若初始文件是反序的,需要进行 趟排序。每趟排序要进行 次关键字的比较(1≤i≤n-1),且每次比较都必须移动记录三次来达到交换记录位置。在这种情况下,比较和移动次数均达到最大值:

    Cmax=n(n−1)2=O(n2)Cmax=n(n−1)2=O(n2)

    Mmax=3n(n−1)2=O(n2)Mmax=3n(n−1)2=O(n2)

    冒泡排序的最坏时间复杂度为O(n2)O(n2) 。

    综上,因此冒泡排序总的平均时间复杂度为O(n2)O(n2) 。

    算法稳定性

    冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,我想你是不会再无聊地把他们俩交换一下的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定排序算法。

    下面就是源代码了

    源代码+注释

    函数版

    //冒泡排序,从小到大(方向可改) 。

    #include

    void bubble_sort(int a[], int n); //申明函数"bubble_sort"

    int number[10000000]; //在主函数外面定义数组可以更长

    void bubble_sort(int a[], int n) //下面是函数bubble_sort的程序

    {

    int i,j,temp; //定义三个整型变量

    for (j=0;j

    {

    for (i=0;i

    {

    if(a[i]>a[i+1]) //从大到小排就把左边的">"改为"

    {

    temp=a[i]; //a[i]与a[i+1](即a[i]后面那个) 交换

    a[i]=a[i+1]; //基本的交换原理"c=a;a=b;b=c"

    a[i+1]=temp;

    }

    }

    }

    }

    int main() //主函数

    {

    int i,n;

    printf("输入数字个数:\n");

    scanf("%d",&n); //输入数字个数

    printf("输入%d个数:\n",n);

    for(int j=0;j

    scanf("%d",&number[j]) ;

    bubble_sort(number,n); //引用函数bubble_sort

    for (i=0;i

    printf("%d ",number[i]); //这里这么写是因为有些题有格式要求(最后一个数后面不能有空格)

    printf("%d\n",number[i]);

    return 0;

    }

    //ENDING

    普通版

    //当然这个版本是从小到大排的

    #include

    int number[10000000];

    int main()

    {

    int i,n,ii,j,temp;

    printf("输入数字个数:\n");

    scanf("%d",&n);

    printf("输入%d个数:\n",n);

    for(int j=0;j

    scanf("%d",&number[j]) ;

    for (j=0;j

    {

    for (ii=0;ii

    {

    if(number[ii]>number[ii+1]) //顺序这里改 !!!

    {

    temp=number[ii];

    number[ii]=number[ii+1];

    number[ii+1]=temp;

    }

    }

    }

    for (i=0;i

    printf("%d ",number[i]);

    printf("%d\n",number[i]);

    return 0;

    }

    //ENDING

    希望大家喜欢这篇文章!!!

    如有问题请留言,谢谢!!!

    >>>我的博客<<<

    部分摘自百度百科(点击可进入) ↩

    展开全文
  • 冒泡排序c语言算法

    2015-06-01 19:57:55
    冒泡排序c语言算法,简单明了,适合初学者查看。
  • 冒泡排序C语言描述

    2021-05-28 22:15:50
    冒泡排序 之前发过C++描述的,现在再发一下·C语言描述的 冒泡排序.c #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> #include<stdlib.h> #include<time.h> #...

    冒泡排序

    • 之前发过C++描述的,现在再发一下·C语言描述的

    冒泡排序.c

    #define _CRT_SECURE_NO_WARNINGS
    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    #include<time.h>
    #include<sys/timeb.h>
    #define MAX 20000
    long getSystemTime()
    {
            struct timeb tb;
            ftime(&tb);
            return tb.time * 1000 + tb.millitm;
    }
    //交换函数
    void Swap(int *a, int* b)
    {
            int temp = *a;
            *a = *b;
            *b = temp;
    }
    int flag = 0;//0标识没有排序号
    //冒泡排序
    void BubbleSort(int arr[], int length)
    {
            for (int i = 0; i < length&&flag==0; i++)
            {
                   flag = 1;//认为已经安排好
                   for (int j = length-1 ; j >i; j--)
                   {
                           if (arr[j - 1] < arr[j])
                           {
                                  flag = 0;
                                  Swap(&arr[j - 1], &arr[j]);
                           }
                   }
            }
    }
    //打印函数
    void PrintArray(int arr[], int length)
    {
            for (int i = 0; i < length; i++)
            {
                   printf("%d",arr[i]);
            }
            printf("\n");
    }
    int main()
    {
            int arr[MAX];
            srand((unsigned int)time(NULL));
            for (int i=0;i<MAX;i++)
            {
                   arr[i] = rand() % MAX;
            }
            printf("排序前:\n");
            //PrintArray(arr,MAX);
            long t_start = getSystemTime();
            BubbleSort(arr,MAX);
            long t_end = getSystemTime();
            printf("冒泡排序%d个元素,所需时间:%1d\n",MAX,t_end-t_start);
            printf("排序后:\n");
            //PrintArray(arr,MAX);
            return EXIT_SUCCESS;
    }
    
    展开全文
  • 数据结构-冒泡排序 C语言源码 #include&amp;lt;stdio.h&amp;gt; #include&amp;lt;stdlib.h&amp;gt; struct MP{ int*elem; int length; }; void ko(MP&amp;amp; l,int n) { int hj; l....
  • 冒泡排序C语言,运用“冒泡”的方法进行排序,是数据结构中常用的方法
  • 冒泡排序C语言(从小到大) #include <stdio.h> void Maopao(int a[],int n){ int i,j,t; for( i=0;i<n-1;++i)//n个数,总共需要进行n-1次 { //n-1个数排完,第一个数一定已经归位 //每次会将最大(升序)或...
  • 功能:简单选择排序和冒泡排序C语言实现#include&lt;stdio.h&gt;#define max 10int main(){ int i, a[max],b[max],j,k,tmp; //输入 printf("plz input %d numbers\n", max); for(i = 0;i &lt...
  • 实现了快速排序与冒泡排序C语言算法,并比较了二者的算法效率。 使用说明:#define中MAX值可更改,为数组中待排序元素的个数。数组元素采用随机数生成,本例为0~999的随机整数,可更改rand()%后的数字进行调整...
  • 冒泡排序 C语言实现

    2021-01-14 09:54:08
    今天分享一段冒泡排序的代码。 冒泡排序是很简单的一种排序方法,原理就不再赘述了。 void bubbleSort(int* arr, int n) { int temp; for(int i = 0; i<n-1; i++){ for (int j = 0; j<n-1-i; j++){ if(arr...
  • C语言快速排序算法 用快速排序法对一组数据由小到大进行排序数据分别为 99451236692262 7964696 实现过程 (1)自定义一个函数 qusort)实现快速排序 (2) main) 函数为程序的入口函数程序代码如下 #include <stdio.h> ...
  • 冒泡排序 c语言实现

    千次阅读 2018-07-02 00:16:03
    冒泡排序思想:从单个方向(比较,交换)每次得到一个最小或者最大数。1,将第一个元素和第二个元素进行比较,若为逆序(arr[1]&lt;arr[2]),则交换它们的位置,然后比较第二个元素和第三个元素 进行比较。...
  • 冒泡 排序 C语言 实现

    2011-06-17 09:17:23
    C语言实现冒泡排序,给一串数字,实现从小到大排序
  • 冒泡排序 c语言

    2020-06-24 00:33:03
    冒泡排序是我们在排序中比较常见的一种排序,它的思路简单,但应用却十分广泛,今天我们就来看看它的代码以及它是如何实现的。 以下是代码 # include <stdio.h> void sort(int * a, int len) { int i, j, t;...
  • 冒泡排序算法,C语言冒泡排序算法详解 冒泡排序的原理是:从左到右,相邻元素进行比较。每次比较一轮,就会找到序列中最大的一个或最小的一个。这个数就会从序列的最右边冒出来。 以从小到大排序为例,第一轮比较后...
  • 初学者冒泡排序C语言

    千次阅读 2020-12-03 13:19:34
    冒泡排序原理(以从小到大排序为例): 对于一个数组中的所有数字元素从左到右依次做一轮比较,每次比较让较大的元素交换到右边;也就是说:从数组的第一个元素开始,依次和之后的元素进行比较,每次比较拿到较大的那个数...
  • /*目的:让用户输入十个整数,利用冒泡排序的形式将数组的元素进行排序 */ #include<stdio.h>//c语言中标准的输入和输出流 #include<stdlib.h>//因为system(“pause”)函数需要 #define n 10//这个是宏...
  • 1、功能:冒泡排序输入:数组名称(也就是数组首地址)、数组中元素个数================================================*//*====================================================算法思想简单描述:在要排序的一...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,857
精华内容 10,742
关键字:

冒泡排序c语言

c语言 订阅