void hanshu(int* p, int sz)
{
int a = *p;
for (int i = 0; i < sz-1; i++)
{
for (int j = 0; j < sz-1-i; j++)
{
int tmp;
if (*(p+j)>*(p+j+1))
{
tmp = *(p+j);
*(p+j) = *(p + j+1);
*(p + j+1) = tmp;
}
}
}
for (int k = 0; k < sz; k++)
{
printf("%d ", *(p + k));
}
}
int main()
{
int arr[10] = { 12,35,9,13,94,68,45,96,1,2 };
int sz = sizeof arr / sizeof arr[0];
hanshu(arr, sz);
return 0;
}
void hanshu(int* p, int sz)/优化后
{
int a = *p;
for (int i = 0; i < sz - 1; i++)
{
int flag = 1;//假设已经有序了
for (int j = 0; j < sz - 1 - i; j++)
{
int tmp;
if (*(p + j) > *(p + j + 1))
{
tmp = *(p + j);
*(p + j) = *(p + j + 1);
*(p + j + 1) = tmp;
flag = 0;
}
}
if (flag == 1)
{
break;
}
}
for (int k = 0; k < sz; k++)
{
printf("%d ", *(p + k));
}
}
int main()
{
int arr[10] = { 12,35,9,13,94,68,45,96,1,2 };
int sz = sizeof arr / sizeof arr[0];
hanshu(arr, sz);
return 0;
}
优化后