冒泡排序是属于比较类的排序方式,简单易懂,但是效率不是很高,不及快排。

#include "stdio.h"
#include "time.h" void bubble(int *a,int len);//排序
void swap(int *p1,int *p2);//交换数值 int main()
{
clock_t start,finish;
double totaltime;
start=clock(); int a[] = {,,,,,,,,,,,,,};
int length = sizeof(a)/sizeof(int);//求数组长度 printf("原序列为:");
for(int i=;i<length;i++)
{
printf("%3d",a[i]);
} bubble(a,length); printf("\n冒泡排序后:");
for(int i=;i<length;i++)
{
printf("%3d",a[i]);
}
printf("\n"); finish=clock();
totaltime=(double)(finish-start)/CLOCKS_PER_SEC;
printf("\n程序运行的时间为: %.5f 秒\n",totaltime); } void swap(int *p1,int *p2)//注意交换数值函数,调用时传入参数是地址,实际就是交换两数值的地址
{
int temp;
temp = *p1;
*p1 = *p2;
*p2 = temp;
} void bubble(int *a,int len)//数组名表示数组第一个元素的地址,所以用int *a
{
int i,j; for(i=;i<len;i++)
{
for(j=;j<len-i-;j++)//注意是 len-i-1, 想一下就明白了
{
if(a[j]>a[j+])
swap(&a[j],&a[j+]);//交换两数值的地址
}
}
}

实现结果:

算法学习之冒泡排序的C实现的更多相关文章

  1. Python之路,Day21 - 常用算法学习

    Python之路,Day21 - 常用算法学习   本节内容 算法定义 时间复杂度 空间复杂度 常用算法实例 1.算法定义 算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的 ...

  2. 第四百一十五节,python常用排序算法学习

    第四百一十五节,python常用排序算法学习 常用排序 名称 复杂度 说明 备注 冒泡排序Bubble Sort O(N*N) 将待排序的元素看作是竖着排列的“气泡”,较小的元素比较轻,从而要往上浮 ...

  3. 算法学习之快速排序的C语言实现

    近几天在学习简单算法,今天看了一个快速排序和堆排序,堆排序还没搞懂,还是先把快速排序搞清楚吧 教程网上一艘一大堆,这里选择一个讲的比较通俗的的一个吧: http://blog.csdn.net/mor ...

  4. JavaScript 数据结构与算法之美 - 冒泡排序、插入排序、选择排序

    1. 前言 算法为王. 想学好前端,先练好内功,只有内功深厚者,前端之路才会走得更远. 笔者写的 JavaScript 数据结构与算法之美 系列用的语言是 JavaScript ,旨在入门数据结构与算 ...

  5. Hark的数据结构与算法练习之冒泡排序

    算法说明: 冒泡排序实际上是使用的最多的排序,逻辑是循环然后对相邻的数字进行比较,并交换数据. 例如有一个数组int[] arrayData = { 2, 3, 1, 5, 6, 7, 4, 65, ...

  6. DSP算法学习-过采样技术

    DSP算法学习-过采样技术 彭会锋 2015-04-27 23:23:47 参考论文: 1 http://wr.lib.tsinghua.edu.cn/sites/default/files/1207 ...

  7. 算法学习之C语言基础

    算法学习,先熟悉一下C语言哈!!! #include <conio.h> #include<stdio.h> int main(){ printf(+); getch(); ; ...

  8. C / C++算法学习笔记(8)-SHELL排序

    原始地址:C / C++算法学习笔记(8)-SHELL排序 基本思想 先取一个小于n的整数d1作为第一个增量(gap),把文件的全部记录分成d1个组.所有距离为dl的倍数的记录放在同一个组中.先在各组 ...

  9. 算法学习之BFS、DFS入门

    算法学习之BFS.DFS入门 0x1 问题描述 迷宫的最短路径 给定一个大小为N*M的迷宫.迷宫由通道和墙壁组成,每一步可以向相邻的上下左右四格的通道移动.请求出从起点到终点所需的最小步数.如果不能到 ...

随机推荐

  1. CorelDRAW中关于锁定与解锁对象的操作

    在编辑复制的图形时,有时为了避免对象受到操作的影响,可以使用“锁定与解锁对象”功能键对已经编辑好的对象进行锁定.被锁定的对象将不能进行任何编辑操作,本教程将详解CorelDRAW中关于锁定与解锁对象的 ...

  2. sql server 2014 序列號

    亲测可用 27HMJ-GH7P9-X2TTB-WPHQC-RG79R

  3. ESPCN超分辨率汇总

    Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural ...

  4. EasyHook实现

    using System; using System.Runtime.InteropServices; using System.Windows.Forms; using System.Collect ...

  5. Linux CentOS6.5上搭建环境遇到的问题

    1.卸载CentOS自带的JDK 查看centos上 安装的jdk:rpm -qa|grep jdk 出现如下: java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86 ...

  6. C#调用DLL报“试图加载格式不正确的程序”

    项目右键属性->项目设计器->生成->平台->把'默认设置(任何 CPU)'改为x86或者x64

  7. jquery 动态展示查询条件

    <table class="queryTable" width="100%" > <tr> <td class="que ...

  8. Java动态代理的实现机制

    一.概述 代理是一种设计模式,其目的是为其他对象提供一个代理以控制对某个对象的访问,代理类负责为委托类预处理消息,过滤消息并转发消息以及进行消息被委托类执行后的后续处理.为了保持行为的一致性,代理类和 ...

  9. linux 查看版本

    输入"uname -a ",可显示电脑以及操作系统的相关信息. 输入"cat /proc/version",说明正在运行的内核版本.输入"cat /e ...

  10. Delphi XE 10 跨平台三层数据库应用教程

    Delphi XE 10 跨平台三层数据库应用教程 前言: Delphi XE 开始越来越庞大,比经典的Delphi7难用,但依然是目前所有跨平台开发工具中开发效率最高.最容易上手的,其快速设计RAD ...