冒泡算法
void bubble_sort(int arr[],int sz)//void为了排序完后不返回
{
int i = 0;
for (i = 0; i < sz - 1; i++)
{
//
int j = 0;
for (j = 0; j < sz - 1 - i; ++j)//对数越来越小n-1,还有如果程序提醒你加分号,但不缺分号的时候,应该是你把内部分号打成逗号了
{
if (arr[j]>arr[j+1])
{
int tmp = arr[j];//tmp交换
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
}
#include "源.h"//函数声明定义
//extern int Add(int, int);
//#define MAX(X,Y) (X>Y?X:Y)
int main()
{
//冒泡排序,
int arr[] = { 9,4,3,5,3,63,462,72, };
//排序
int i = 0;
int sz = sizeof(arr) / sizeof(arr[0]);
//对arr进行排序,排成升序
//arr传参数,实际上是传首元素地址,因为连续
bubble_sort(arr,sz);//冒泡排序
for (i = 0; i < sz; i++)
{
printf(" % d", arr[i]);
}
冒泡优化,排序结束
//数组冒泡函数
void bubble_sort(int arr[],int sz)//void为了排序完后不返回
{
int i = 0;
for (i = 0; i < sz - 1; i++)
{
int flag = 1;//假设排序一趟已经有序
//
int j = 0;
for (j = 0; j < sz - 1 - i; ++j)//对数越来越小n-1,还有如果程序提醒你加分号,但不缺分号的时候,应该是你把内部分号打成逗号了
{
if (arr[j]>arr[j+1])
{
int tmp = arr[j];//tmp交换
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
flag = 0;//假设是无序,传值
}
}
if (flag == 1)
{
break;//完成排序就结束
}
}
#include "源.h"//函数声明定义
//extern int Add(int, int);
//#define MAX(X,Y) (X>Y?X:Y)
int main()
{
//冒泡排序,
int arr[] = { 9,4,3,5,3,63,462,72, };
//排序
int i = 0;
int sz = sizeof(arr) / sizeof(arr[0]);
//对arr进行排序,排成升序
//arr传参数,实际上是传首元素地址,因为连续
bubble_sort(arr,sz);//冒泡排序
for (i = 0; i < sz; i++)
{
printf(" % d", arr[i]);
}
int arr[] = { 9,4,3,5,3,63,462,72, };
printf("%p\n", arr);
printf("%p\n", &arr[0]);//arr[0]首地址
printf("%d\n", *arr);//*指针,
两个例外
标签:tmp,sz,arr,int,++,数组,排序 From: https://blog.51cto.com/u_15850089/5807721