冒泡法的三种排序方法:
1、数组排序
#include
//#include
int main()
{
int i;
int j;
int tmp;
int arr[8] = { 1, 3, 5, 7, 9, 2, 6, 8 };
int sz = sizeof(arr) / sizeof(arr[0]);
for (j = 0; j < sz - 1; j++)
{
for (i = 0; i < sz - 1 - j; i++)
{
if (arr[i] > arr[i + 1])
{
tmp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = tmp;
}
}
}
for (i = 0; i < 8; i++)
printf("%d\n", arr[i]);
system("pause");
return 0;
}
2、封装函数
#include
void fun(int arr[], int sz)
{
int i;
int j;
int tmp;
for (j = 0; j < sz - 1; j++)
{
for (i = 0; i < sz - 1 - j; i++)
{
if (arr[i] > arr[i + 1])
{
tmp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = tmp;
}
}
}
}
int main()
{
int i = 0;
int arr[8] = { 1, 3, 5, 7, 9, 2, 6, 8 };
int sz = sizeof(arr) / sizeof(arr[0]);
fun(arr, sz);
for (i = 0; i < 8; i++)
{
printf("%d\n", arr[i]);
}
system("pause");
return 0;
}
3、指针访问
#include
void fun(int *arr, int sz)
{
int i;
int j;
int tmp;
for (i = 0; i < sz; i++)
{
for (j = 0; j < sz - 1 - i; j++)
{
if (*(arr + j) < (*(arr + j + 1)))
{
tmp = *(arr + j);
*(arr + j) = *(arr + j + 1);
*(arr + j + 1) = tmp;
}
}
}
}
int main()
{
int arr[] = { 1,3,5,7,9,20,10,30 };
int sz = sizeof(arr) / sizeof(*arr);
int ret = 0;
fun(arr, sz);
for (ret = 1; ret< sz; ret++)
printf("%d\n", arr[ret]);
system("pause");
return 0;
}