#include<stdio.h>
#include<windows.h>
void Bubble_sort1(int arr[],int sz)//冒泡升序排列
{
int i = 0;
for(i= 0;i<sz-1;i++)
{
int j = 0;
for(j = 0;j<sz-1-i;j++)
{
if(arr[j]>arr[j+1])
{
int tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
}
void Bubble_sort2(int *arr,int sz)//冒泡降序排列
{
int i,j,k;
for(i=0;i<sz;i++)
{
for(j=i+1;j<sz;j++)
{
if(arr[i]<arr[j])
{
k = arr[j];
arr[j] = arr[i];
arr[i] = k;
}
}
}
}
int main()
{
int arr[] = {5,1,2,4,3,6,0,8,9,7};
int i = 0;
int sz = sizeof(arr)/sizeof(arr[0]);
Bubble_sort1(arr,sz);
for(i = 0;i < sz; i++)
{
printf("%d ",arr[i]);
}
printf("\n升序得到的数组再降序排列>:\n");
Bubble_sort2(arr,sz);
for(i = 0;i < sz; i++)
{
printf("%d ",arr[i]);
}
system("pause");
return 0;
}
冒泡排序的核心思想是:若要求升序两两比较,较大的放右边较小的放左边,这样来回若干次就可以排出顺序。具体次数根据所给数组的大小可以求出