#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
int temp
;
int flag
=0;
srand((unsigned int)time(NULL));
int a
[10];
for(int m
=0;m
<10;++m
)
{
a
[m
]=(rand()%50);
printf("%d ",a
[m
]);
}
for(int i
=0;i
<10;++i
)
{
for(int j
=0;j
<len
-1;++j
)
{
if(a
[j
]<a
[j
-1])
{
temp
=a
[j
];
a
[j
]=a
[j
-1];
a
[j
-1]=temp
;
flag
=1;
}
}
if(flag
==0)
{
break;
}
}
for(int n
=0;n
<10;++n
)
{
printf("%d ",a
[n
]);
}
}
int flag;的用出处在于检查冒泡排序是否已经排序好,如果排序完成就
break for循环,避免cpu空转,提高效率
另外一个优化在于要使用
++i而不是i
++
```c
#include<stdio.h>
#include<string.h>
void main()
{
char *str
[]={"hello","world","zhou","lin","aaa"};
char *temp
=NULL;
for(int i
=0;i
<5;++i
)
{
for(int j
=0;j
<5-i
;++j
)
{
if(strcmp(str
[j
],str
[j
+1])>0)
{
temp
=str
[j
];
str
[j
]=str
[j
+1];
str
[j
+1]=temp
;
}
}
}
for(int i
=0;i
<5;++i
)
printf("%-8s",str
[i
]);
}
转载请注明原文地址: https://lol.8miu.com/read-16470.html