冒泡排序以及数组名相关内容
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冒泡排序以及数组名相关内容相关的知识,希望对你有一定的参考价值。
void bubble_sort(int arr[], int sz)//冒泡排序
int i = 0;//确定冒泡排序的次数
for (i = 0; i < sz - 1; i++)
int flag = 1;//假设这一趟要排序的数据已经全部有序
//用来判断是否进入if语句,进入if语句说明还没排好序,需要继续排序
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;
flag = 0;//本趟排序的数据其实不完全有序
if (flag == 1)//利用flag减少趟次数,提高效率
break;//if语句中不可以使用break语句,但此处break仍属于for循环中
#include<stdio.h>
int main()
int arr[] = 5,6,8,33,99,57 ;
int i = 0;
int sz = sizeof(arr) / sizeof(arr[0]);//必须在外部求好,再移到函数中
bubble_sort(arr, sz);//冒泡排序函数
for (i = 0; i < sz; i++)
printf("%d ", arr[i]);
return 0;
2.
//对于数组名,一般情况下数组名是首元素的地址
#include<stdio.h>
int main()
int arr[] = 0,1,2,3,4,56 ;
printf("%p\\n", arr);//打印数组名
printf("%p\\n", &arr[0]);//打印首元素地址
printf("%p\\n", &arr);//打印数组的地址,数值上看与首元素相同,但实际上意义不同
//相当于直接跳到下一数组(当前数组的末尾)
printf("%d\\n", *arr);//打印首元素,利用首元素地址
return 0;
//例外情况
//1.sizeof(数组名)计算整个数组的大小,sizeof内部单独放一个数组名,数组名表示整个数组
//2.&数组名,取出的是数组的地址,数组名表示整个数组
//除此之外,其他情况下的数组名均表示首元素的地址,可理解为指针
以上是关于冒泡排序以及数组名相关内容的主要内容,如果未能解决你的问题,请参考以下文章