求C语言冒泡排序!!!急!!急!!!

来源:百度知道 编辑:UC知道 时间:2024/06/01 16:45:32
1.要求每个小问题都要用子函数实现,最后在主函数中调用。
2.从键盘输入记录数,依次输入个记录元素数值,以这些数值的和为关键字进行冒泡排序,最后在屏幕上输出排序后的记录
3.要有6趟冒泡过程
4.另外编写双向冒泡

我写个冒泡法的算法实现函数
typedef int KeyType

typedef struct
{
KeyType key;
InforTyjpe otherdata;
}RecordType;/*定义结构体类型

void BunnleSort(RecData R,int n)
{
int i,j,flag; /*flag为交换标志量
RecordType temp; /*RextrdType是关键字类型*/
for(i=1;i<n;i++)
{
flag=0; /*每趟开始前,flag=0,即无交换发生*/
for(j=0;j<n-1;j++)
if(R[j].key>R[j+1].key)/*找最大关键字*/
{
flag=1;
temp=R[j];
R[j]=R[j+1];
R[j+1]=temp;
}
if(flag==0) /*本趟无交换,提前推出*/
return;
}
}

你可以写个主函数调用上面的BunnleSort函数,也可以不用结构体类型,用整型,浮点型等,把R〔n〕当实参调用就行了,要是不能我明天在给你写个

#include "stdio.h"
#define N 6 //6趟排序

void sort(int b[]); //排序函数

void main()
{
int i;
int a[1000];

printf("\n请输入这%d个数据:\n",N);
for(i=