冒泡排序算法的运作如下:
  1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
  2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
  3. 针对所有的元素重复以上的步骤,除了最后一个。
  4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

时间复杂度



  若文件的初始状态是正序的,一趟扫描即可完成排序。所需的关键字比较次数

和记录移动次数

均达到最小值:

所以,冒泡排序最好的时间复杂度为


  若初始文件是反序的,需要进行

趟排序。每趟排序要进行

次关键字的比较(1≤i≤n-1),且每次比较都必须移动记录三次来达到交换记录位置。在这种情况下,比较和移动次数均达到最大值:

冒泡排序的最坏时间复杂度为

综上,因此冒泡排序总的平均时间复杂度为

2. Use pointer to complete the assignment. define array for three integers.

Write three functions, which are input(), deal(), print()

The input() function needs to complete three number's input.

The deal() function needs to put the smallest onto the first position, put the biggest one onto the end of the sequence.

The print() function needs to print the result.

  1. #include<stdio.h>
  2. int input(int* a);
  3. int output(int* a);
  4. int deal(int *);
  5. int main()
  6. {
  7. int array[3];
  8. input(array);
  9. deal(array);
  10. output(array);
  11. return 0;
  12. }
  13.  
  14. int input(int* a)
  15. {
  16. int i;
  17. for(i=0;i<3;i++)
  18. {
  19. scanf("%d",&*(a+i));
  20. }
  21. return 0;
  22.  
  23. }
  24. int deal(int *a)
  25. {
  26. int min,i,j;
  27. for(i=0;i<3-1;i++)
  28. for(j=0;j<2-i;j++)
  29. if(*(a+j)>*(a+j+1))
  30. {
  31. min=*(a+j);
  32. *(a+j)=*(a+j+1);
  33. *(a+j+1)=min;
  34. }
  35. return 0;
  36. }
  37. int output(int* a)
  38. {
  39. int i;
  40. for(i=0;i<3;i++)
  41. printf("%d ",*(a+i));
  42. return 0;
  43. }

c语言冒泡排序,指针,数组的更多相关文章

  1. go语言学习--指针数组和数组指针

    数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长.也就是说执行p+1时,p要跨过n个整型数据的 ...

  2. c语言.函数指针数组

    函数指针: 一个指向函数的指针.一般用函数名表示. 函数指针数组:元素为函数指针的数组.转移表.c语言中函数不可以定义为数组,只能通过定义函数指针来操作. #include<stdio.h> ...

  3. C语言通过指针数组和二维数组读取文件

    1 # include <stdio.h> 2 # include <stdlib.h> 3 # include <time.h> 4 # include < ...

  4. C语言->实验室->指针数组

    一 分析 讨论指针数组要从三个层面来考虑: 1)指针数组本身是什么 2)指针数组作为参数时的表现 3)指针数组作为返回值时的表现 二 指针数组是什么 1)指针数组--指针的集合 数组是若干元素的集合, ...

  5. C语言中指针数组和数组指针的区别

    指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定.它是“储存指针的数组”的简称. 数组指针:首先它是一个指针,它指向一个数组.在32 位系统下永远是占4 个字节,至于它指 ...

  6. 【C语言】指针数组

    题目:编写UNIX程序sort的简化版本,该程序按字母顺序对由文本行组成的集合进行排序. 思路:我们引入指针数组处理这种问题.如果待排序的文本行首尾相连地存储在一个长字符数组中,那么每个文本行可通过指 ...

  7. C/C++语言中指针数组和数组指针比较区别

    指针数组:int *p[3] 定义一个指针数组,其中每个数组元素指向一个int型变量的地址 意思就是指针的数组,数组里面都是指针 例子: int *p[3];//定义了一个指针数组,有3个成员,每个成 ...

  8. c语言 字符指针数组的用法

    #include <stdio.h> #include <stdlib.h> int main(){ //字符数组的使用 char str[] = {'z','b','c',' ...

  9. C语言的指针数组与指针数组

    一.指针数组与指针数组 1,指针数组 顾名思义,即一个元素全部是指针的数组,其形式与普通数组相似,形式如 *a[N]. 在理解指针数组的使用方式前,我先来说下我个人对数组的理解. 比如一维整形数组(形 ...

  10. 关于C语言的指针数组与指针数组的个人理解

    一.指针数组与指针数组 1,指针数组 顾名思义,即一个元素全部是指针的数组,其形式与普通数组相似,形式如 *a[N]. 在理解指针数组的使用方式前,我先来说下我个人对数组的理解. 比如一维整形数组(形 ...

随机推荐

  1. [Hadoop源码解读](一)MapReduce篇之InputFormat

    平时我们写MapReduce程序的时候,在设置输入格式的时候,总会调用形如job.setInputFormatClass(KeyValueTextInputFormat.class);来保证输入文件按 ...

  2. WordPress Contact Form 7插件任意文件上传漏洞

    漏洞名称: WordPress Contact Form 7插件任意文件上传漏洞 CNNVD编号: CNNVD-201311-415 发布时间: 2013-11-28 更新时间: 2013-11-28 ...

  3. 操作系统杂谈 mac 和linux windows若干概念

    Mac: vmware 安装:1.方式一通过FreeBSD方式用 darwin.iso引导加载dmg安装 2.通过制作cdr /iso  vmware安装mac插件 mac有 macpe 使用open ...

  4. arch Linux not found device 错误解决

    使用Archlinux LiveCD mount /dev.sda1 /mnt (有boot分区的挂boot) Running mkinitcpio -p linux Running grub-mkc ...

  5. 跟我学机器视觉-HALCON学习例程中文详解-测量圆环脚宽间距

    跟我学机器视觉-HALCON学习例程中文详解-测量圆环脚宽间距 This example program demonstrates the basic usage of a circular meas ...

  6. VS2013 单元测试(使用VS2013自带的单元测试)

    本文是官方文档的学习笔记,官方文档在这里. 1.打开VS3013,随便建一个解决方案,比如叫:LearnUnitTest,建一个类库项目LearnUnitTest_Bank,该项目中添加一个BankA ...

  7. VellCar(我的钢管车)

    我自己设计了一款钢管车,由于绘图水平有限,所以做的不是特别好看,但整个车架都是我自己设计的,个人觉得不错,尺寸也是按着实际尺寸做的,长2.5米宽为1米,后置发动机,后驱...贴图吧,更形象: 所有零部 ...

  8. linux Grant 添加 MySql 用户

    Grant 添加 MySql 用户 2009-04-03 14:40 我安装的版本: mysql> select version();+------------+| version()   |+ ...

  9. Storm系列(十五)架构分析之Executor-Spout

    Spout实现mk-threads接口用于创建与Executor对应的消息循环主函数. defmulti mk-threads executor-selector Mk-threads函数的主消息循环 ...

  10. (原)Struts 相关资源下载

    官网:http://struts.apache.org 点击[Download],进入页面如下,可以看到下载的资源: 点击[struts-2.3.20-all.zip],就能获取Struts2项目所有 ...