数组作为函数参数 冒泡排序(整形数组排序)

数组作为函数参数 冒泡排序(整形数组排序),第1张

数组作为函数参数 冒泡排序(整形数组排序)

1-31

1. 数组名是什么? 2.数组名是首元素地址
#include 
int main()
{
    int arr[10] = {1,2,3,4,5};
 printf("%pn", arr);
    printf("%pn", &arr[0]);
    printf("%dn", *arr);
    //输出结果
    return 0; }

3.补充

两个情况数组名表示整个数组

1. sizeof( 数组名) 计算整个数组的大小, sizeof 内部单独放一个数组名,数组名表示整个数组的字节。 2. & 数组名,取出的是数组的地址。 & 数组名,数组名表示整个数组。
int arr[10] = {0};
printf("%dn", sizeof(arr));
//结果是40

 

 对数组进行排序(初)

#include 
void bubble_sort(int arr[], int sz)//形参arr本质是指针
{
	//确定趟数
	int i = 0;
	int j = 0;
	for (i = 0; i < sz - 1; i++)
	{
		//一趟冒泡排序的过程
		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;
			}
		}
		
	}
 }
int main()
{
	int arr[10]={9,8,7,6,5,4,3,2,1,0};
	int i=0;
	//排序为升序 冒泡排序
	//计算数组内元素个数
	 int sz = sizeof(arr)/sizeof(arr[0]);
	 bubble_sort(arr,sz);//数组传递的时候其实是传递数组首元素的地址
	 for(i=0;i 
 

对数组进行排序(改良)

考虑本来就是正确的顺序

#include 
void bubble_sort(int arr[], int sz)//形参arr本质是指针
{
	int i = 0;
	int j = 0;
	int flag=0;
	for (i = 0; i < sz - 1; i++)//确定趟数

	{
		//一趟冒泡排序的过程

		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=1;//判断是否交换
			}
			
		}
		if(flag==0)
			break;//对于原来顺序是正确的情况简化计算
	}
 }
int main()
{
	int arr[10]={9,8,7,6,5,4,3,2,1,0};
	int i=0;
	//排序为升序 冒泡排序
	//计算数组内元素个数
	 int sz = sizeof(arr)/sizeof(arr[0]);
	 bubble_sort(arr,sz);//数组传递的时候其实是传递数组首元素的地址
	 for(i=0;i 
 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5718495.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存