好好编程,天天向上
日日进步,诸君共鉴
#include <stdio.h>
#include <stdlib.h>
void bubbleSort(int arr[], int n)//得到数组地址,元素个数
{
int i,j,temp;
for(i=0;i<n-1;i++)//一共有n个元素,则执行n-1趟
{
for(j=0;j<n-1-i;j++)//每执行一趟,交换的次数j随i减少,为n-1-i次交换
{
if(arr[j]>arr[j+1])//如果前面一个数大于后面一个数,则交换
{
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
int main()
{
int i;
int arr[]={2,3,4,1,5,7,6};//建立一个待排序的数组
for(i=0;i<7;i++)
{
printf(" %d",arr[i]);//打印排序前的数组,检查是否正常
}
printf("\n");
bubbleSort(arr,7);//冒泡排序,将地址,元素个数传出
for(i=0;i<7;i++)//打印排序后的数组
{
printf(" %d",arr[i]);
}
return 0;
}
//缺点:需要提前建立数组和元素个数,且不论数组是否排好序,冒泡排序会一直进行,直到最后