算法设计题目二 冒泡排序改进
来源:互联网 发布:知恩中学美术班好吗 编辑:程序博客网 时间:2024/06/06 06:37
/*说是改进,,其实就是奇偶排序,老师在逗我们。
改进冒泡排序,试编写一个程序,对一个待排序的数据元素集合进行奇偶转换排序。(
奇偶排序时指第一趟对所有奇数的i,将a【i】与a【i+1】进行比较,第二趟是对所有偶数的i,将a【i】与a【i+1】进行比较,每次比较时,若a【i】>a【i+1】,则将二者交换,重复上述俩趟交换进行的过程,直到整个数据表有序。)*/
#include "stdio.h"
#include "malloc.h"
#define LIST_SIZE 20
typedef struct{
intr[LIST_SIZE];
intlength;
}SqeList;
SqeList *SqLset(){//建立表
SqeList *L;
int i=0,a;
L = ( SqeList *)malloc(sizeof(SqeList));
printf("请输入一个整形的待排数列,输入0时结束!");
scanf("%d",&a);
L->length = 0;
while(a!=0){
L->r[i]=a;
L->length++;
i++;
if(L->length == LIST_SIZE-1)break;
scanf("%d",&a);
}
return L;
}
SqeList * BubbleSort(SqeList *L)
{
int i,j;
int x;
bool flag=0;
while(!flag){//冒泡排序
flag=1;
for(i=1;i<L->length-1;i+=2)
if(L->r[i]>L->r[i+1]){
x=L->r[i];
L->r[i]=L->r[i+1];
L->r[i+1]=x;
flag=0;
}
for(j=0;j<L->length-1;j+=2)
if(L->r[j]>L->r[j+1]){
x=L->r[j];
L->r[j]=L->r[j+1];
L->r[j+1]=x;
flag=0;
}
}
return L;
}
intmain(){
int i;
SqeList *L;
L=SqLset();
L=BubbleSort(L);
printf("\n排序后数据为:");
for(i=0;i<L->length;i++)
printf("%4d",L->r[i]);
return 0;
}
运行结果:
- 算法设计题目二 冒泡排序改进
- 冒泡排序改进算法
- 数据结构之排序算法(二)-冒泡排序及改进
- 算法题目-冒泡排序
- 冒泡排序的改进算法
- 改进的冒泡排序算法
- 冒泡排序及其改进算法
- 改进的冒泡排序算法
- 改进的冒泡排序算法
- 改进的冒泡排序算法
- 冒泡排序算法的改进
- 冒泡排序算法以及改进
- 冒泡排序及其改进算法
- 冒泡排序算法的改进
- 冒泡排序及其改进算法
- 冒泡排序及其改进算法
- 改进的冒泡排序算法
- 排序算法--冒泡排序的首尾改进
- 【ZOJ】3820 Building Fire Stations 树的直径
- 10种排序算法总结
- String 的相等性和不可变性
- C# WPF 高级教程
- 最近的生活,我想谈一谈
- 算法设计题目二 冒泡排序改进
- 点聚 保存文档到服务器
- C# WPF 高级教程
- 如何使用C#监听SQL Server数据库
- cocos2d-x总结
- 关于支付宝合作者身份id与与卖家支付宝账号
- Cocos2d-x V3.2+Cocos Studio1.6 实现一个简单的uibutton点击功能
- Unity3D学习笔记 碰撞检测
- oracle死锁的解决方法