-
09-1112
-
冒泡法排序的排序过程如下,首先将第一个记录与第二个记录进行比较,若为逆序(R[1]>R[2]),则将两个记录交换,然后比较第二个记录和第三个记录。依次类推,直到第n-1个记录完成比较为止。上述过程称为第一次起泡排序过程,其结果使得最大的记录被放在了最后一个记录的位置上。然后进行第二次起泡排序,对前n-1个记录进行同样的操作将次大的记录放在第n-1个记录的位置上。
Tags: C#, 算法, 排序
由于此算法中小的数据像水中的气泡一样向上浮动,而大的数据像石头一样沉入水底,因此形象的称此算法为起泡法排序。
算法描述如下:
void sortArry(int a[],int n)
{
int i,j,t;
for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
}
例9-11 对整数序列 1,2,8 ,9 ,-1,22,23,2,3,4按递增的顺序排序。
#include “stdio.h”
#include “math.h”
void main()
{
int array[10]={1,2,8 ,9 ,-1,22,23,2,3,4};
int i;
for(i=0;i<10;i++)
printf(“%5d”,array[i]);
printf(“\n”);
sortArry(array,10);
for(i=0;i<10;i++)
printf(“%5d”,array[i]);
}
void sortArry(int a[],int n)
{
int i,j,t;
for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
}
相关日志

- 评论 (0)
- 引用通告 (0)
发表评论 发起引用