//一维数组冒泡排序判断数组是否非乱序.
int main(void)
{
int ar1[10] = {1,2,3,4,5,6,7,8,9,10};
int temp;
//因为sizeof是unsigned类型,为了避免编译器警告,所以定义为unsigned类型.
//如果定义为int类型,对程序运行也无影响.
unsigned int i ,j;
unsigned int flag = 1;
for(i = 0; i<=sizeof(ar1)/sizeof(ar1[0])-1; i++)
{
for(j = 0; j < sizeof(ar1)/sizeof(ar1[0])-1-i; j++)
{
if (ar1[j] > ar1[j+1])
{
temp = ar1[j+1];
ar1[j+1] = ar1[j];
ar1[j] = temp;
flag = 0;
}
//以下条件相当于在第一轮对比中,发现顺序是已经排好的.所以并为进入上面的if循环
//flag变量依旧等于1,所以打印输出,并且结束程序.
if (i == 0&& j == sizeof(ar1)/sizeof(ar1[0])-2-i && flag==1)
{
printf("Your array has been sort yet!\n");
printf("It doesn's need to sort!\n");
for( i = 0; i<10; i++)
{
printf("%d ",ar1[i]);
}
return 0;
}
}
}
printf("Sort it done!\n");
for( i = 0; i<10; i++)
{
printf("%d ",ar1[i]);
}
return 0;
}一维数组冒泡排序
最新推荐文章于 2022-01-11 02:31:11 发布
本文介绍了一种在一维数组上实现冒泡排序的方法,并通过一个标志位优化了排序过程,当检测到数组已有序时提前终止排序,避免不必要的比较和交换操作。
8412

被折叠的 条评论
为什么被折叠?



