c语言实现冒泡排序
来源:互联网 发布:淘宝客收入怎么样 编辑:程序博客网 时间:2024/06/04 17:50
冒泡排序的思想是从data[1]到data[n-1],如果data[i]比data[i+1]大,则以data[0]为temp位,将两者进行交换,所以一趟比较下来,最大的将会被不停置换到最后一个位置,因为第一趟已将最大的放到最后,所以第二趟只需要比较到data[n-1]即可,以此类推,即可得到冒泡排序得到的结果,所以说如果整个数组恰好是倒序排列,那么冒泡排序的效率将会是最差的,需要进行n-1次排序,即n(n-1)/2次比较,而效果最好便是整个数组恰巧正序排列,一次排序便可以得到有序序列。总的时间复杂度还是
代码如下:#include <stdio.h>typedef struct{int key;char name[10];}Data;Data ListOld[]={{0,"num0"},{49,"num1"},{38,"num2"},{65,"num3"},{97,"num4"},{76,"num5"},{13,"num6"},{27,"num7"},{49,"num8"}};void BubbleSort(Data *pdata,int n);void PrintData(Data *pdata,int n);int main(int argc, char *argv[]){printf("Hello, world\n");BubbleSort(ListOld,9);return 0;}void PrintData(Data *pdata,int n){int i;for(i=1;i<n;i++){printf("%d,%s ",pdata[i].key,pdata[i].name);}printf("\n");}void BubbleSort(Data *pdata,int n){ int i,j,isExchanged; for(i=1;i<n-1;i++) { for(j=1;j<n-i;j++) { if(pdata[j].key>pdata[j+1].key) { pdata[0] = pdata[j]; pdata[j] = pdata[j+1]; pdata[j+1] = pdata[0]; isExchanged = 1; } } if(!isExchanged) break; } PrintData(pdata,9);}
0 0
- C语言实现冒泡排序
- 冒泡排序C语言实现
- 冒泡排序C语言实现
- 实现冒泡排序(c语言)
- 冒泡排序--C语言实现
- 冒泡排序--c语言实现
- 冒泡排序(C语言实现)
- 冒泡排序C语言实现
- c语言实现冒泡排序
- c语言实现冒泡排序
- C语言实现冒泡排序
- C语言实现冒泡排序
- C语言实现冒泡排序
- c语言实现冒泡排序
- 冒泡排序C语言实现
- 冒泡排序 C语言实现
- c语言实现冒泡排序
- c语言实现冒泡排序
- BaseHTTPServer与CGIHTTPServer源码分析 - 技术手札
- 使用vc9 静态编译qt4
- OC学习:block类型数据
- Linux防火墙
- 何时应该用静态方法、静态域?
- c语言实现冒泡排序
- windows 缓冲区溢出 简单例子
- iOS-NFC
- telnet IP【程序和功能中的telnet服务器和客户端都已经打开,防火墙中23端口也开着,就是进不去,请看里面吧!】
- Birt集成Web项目(Do)
- 拷贝构造函数的作用
- 数据库的水平分割和垂直分割的介绍
- 在mingw/GNU上编译opengl代码问题
- Xcode 从SVN服务器端checkout到本地的文件变更IP地址