冒泡排序(C/C++实现)
来源:互联网 发布:extjs5 项目实例源码 编辑:程序博客网 时间:2024/05/17 23:29
#include <iostream>using namespace std;#define MAXSIZE 10typedef struct{ int data[MAXSIZE+1]; //data[0]作为哨兵 int length;}SqList;void Swap(SqList *L, int i, int j){ int tmp; tmp = L->data[i]; L->data[i] = L->data[j]; L->data[j] = tmp;}void BubbleSort01(SqList *L){ int i, j; for(i=1; i<L->length; i++) { for(j=i+1; j<=L->length; j++) { if(L->data[j] < L->data[i]) { Swap(L, i, j); //如果后一个数据小于前一个数据,将两者进行交换 } } }}//从后向前比较void BubbleSort02(SqList *L){ int i, j; for(i=1; i<L->length; i++) { for(j=L->length; j>i; j--) { if(L->data[j] < L->data[j-1]) { Swap(L, j, j-1); //如果后一个数据小于前一个数据,将两者进行交换 } } }}//如果已经有序,则不再比较void BubbleSort03(SqList *L){ int i, j; bool flag = true; for(i=1; i<L->length && flag; i++) { flag = false; for(j=L->length; j>i; j--) { if(L->data[j] < L->data[j-1]) { Swap(L, j, j-1); //如果后一个数据小于前一个数据,将两者进行交换 flag = true; } } }}int main(){ int i; SqList list; cout <<"Please input " <<MAXSIZE<<" number :" << endl; for(i=0; i<MAXSIZE; i++) { cin >> list.data[i+1]; } list.length = 10; cout <<"The numbers before sort: "; for(i=0; i<MAXSIZE; i++) { cout << list.data[i+1] << " "; } cout << endl; BubbleSort03(&list); cout <<"The numbers after sort: "; for(i=0; i<MAXSIZE; i++) { cout << list.data[i+1] << " "; } cout << endl; return 0;}
0 0
- 冒泡排序(C实现)
- 冒泡排序(C实现)
- 冒泡排序C实现
- C实现冒泡排序
- 排序算法(C实现)------ 冒泡排序
- 冒泡排序算法(C & Java 实现)
- 冒泡排序算法(C语言实现)
- 冒泡排序(C/C++实现)
- 蛮力法之冒泡排序(C实现)
- 冒泡排序(c语言实现)
- 冒泡排序(C语言实现)
- 冒泡排序(C语言实现)
- 冒泡排序(C#)
- 冒泡排序(C++)
- 冒泡排序(C++)
- C语言实现冒泡排序
- 冒泡排序C语言实现
- 冒泡排序C语言实现
- linux c++有序遍历目录
- myeclipse 装spket插件图解版
- 利用CoreGraphics.framework框架 自己画圆
- 给驴的
- Entity Framework 学习初级篇7--基本操作:增加、更新、删除、事务
- 冒泡排序(C/C++实现)
- Hibernate操作引起的对象状态变更
- Swift中文教程(一)基础数据类型
- 黑马程序员--Java高新技术--JDK1.5新特性(下)
- Core Data
- chrome下document.documentElement.scrollTop为0的解决方案
- C/C++面试题:class和struct有什么区别?
- 华为OJ_1988_数组能否分成两组,使得两组中各元素加起来的和相等
- Virtual Box 更改Mac X 10.9分辨率