C语言冒泡排序的两种算法
来源:互联网 发布:如何学习大数据 编辑:程序博客网 时间:2024/05/29 08:27
/************************************************************************************C语言冒泡排序1.指针的方法************************************************************************************/#include <stdio.h>void bubble_sort(float *pt,int n)//全用指针的冒泡排序法---从大到小{ int i,j; float tempnum; for(i=0;i<n;i++) { for(j=i+1;j<n;j++) { if(*(pt+j)>* (pt+i)) { tempnum = *(pt+i); *(pt+i) = *(pt+j); *(pt+j) = tempnum; } } }}void print_result(float *p,int n)//输出结果{ int k; for(k=0;k<n;k++) { printf("%g\t",*(p+k));//\t指的是一个制表符---占8列 }}int main()//主函数{ int i; float array[10]; float * pointer; printf("请输入10个数:\n"); for(i=0;i<10;i++) { scanf("%f",&array[i]); } pointer=array; bubble_sort(pointer,10); //冒泡排序 print_result(pointer,10);//输出结果 return 0;}/************************************************************************************C语言冒泡排序1.非指针的方法************************************************************************************/#include <stdio.h>#define MAX 255int R[MAX];void Bubble_Sort(int n){ /* R(l..n)是待排序的文件,采用自下向上扫描,对R做冒泡排序 */ int i,j; int exchange; /* 交换标志 */ for(i=1;i<n;i++) /* 最多做n-1趟排序 */ { exchange=0; /* 本趟排序开始前,交换标志应为假 */ for(j=n-1;j>=i;j--) /* 对当前无序区R[i..n]自下向上扫描 */ if(R[j+1]<R[j])/* 交换记录 */ { R[0]=R[j+1]; /* R[0]不是哨兵,仅做暂存单元 */ R[j+1]=R[j]; R[j]=R[0]; exchange=1; /* 发生了交换,故将交换标志置为真 */ } if(!exchange) /* 本趟排序未发生交换,提前终止算法 */ return; }}void main(){ int i,n; //clrscr(); system("cls"); puts("Please input total element number of the sequence:");//请输入元素个数 scanf("%d",&n); if(n<=0||n>MAX) { printf("n must more than 0 and less than %d.\n",MAX); exit(0); } puts("Please input the elements one by one:"); for(i=1;i<=n;i++) scanf("%d",&R[i]); puts("The sequence you input is:"); for(i=1;i<=n;i++) printf("%4d",R[i]); Bubble_Sort(n); puts("\nThe sequence after bubble_sort is:"); for(i=1;i<=n;i++) printf("%4d",R[i]); puts("\n Press any key to quit..."); getchar(); getchar();}
0 0
- C语言冒泡排序的两种算法
- c语言的经典算法-冒泡排序
- 冒泡排序算法的c语言实现
- C语言的冒泡排序算法
- 冒泡排序算法的两种优化
- 冒泡排序算法(C语言)
- c语言 冒泡排序算法
- c语言冒泡排序算法
- C语言冒泡排序算法
- C语言冒泡排序算法
- C语言 冒泡排序算法
- C语言单链表的3种排序算法,插入排序,冒泡排序,选择排序
- C语言单链表的3种排序算法,插入排序,冒泡排序,选择排序
- 数组排序的两种算法--冒泡排序/选择排序
- 排序算法的C语言实现-冒泡排序
- 排序算法c语言描述---冒泡排序
- C语言中常用的两种排序法(冒泡法/插入法)
- C语言常用的几种排序算法代码(选择排序,冒泡排序,插入排序,快速排序)
- 息中间件(一)分布式系统事务一致性解决方案大对比,谁最好使?
- MySQL存储过程及触发器
- Android开发实践:拷贝assets到sdcard
- C++学习笔记(三)--继承中的异常处理
- ref 与out的区别
- C语言冒泡排序的两种算法
- 超级标准形式打印杨辉三角
- 坑爹的Maven
- 消息中间件(二)消息队列
- JAVA中处理大数的方法
- 数据结构之栈(一):栈的实现
- Linux系统编程手册-进程-6章
- 关于Android中View显示到父布局之外
- 判断输入的矩阵是否是单位矩阵