首页 > 其他分享 >daily study 7

daily study 7

时间:2023-01-02 17:34:38浏览次数:36  
标签:sz arr int study daily ++ 冒泡排序 sizeof

学习数组作为函数的参数:写一个冒泡排序函数,将一个整形数组排序

冒泡排序:两两相邻元素进行比较,然后进行交换

#include<stdio.h>

void th(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;

                 }

             }

       }

}

int main()

{

//对arr进行排序,顺序为升序

int i = 0;

int arr[] = { 9,8,7,6,5,4,3,2,1,0 };

int sz = sizeof(arr) / sizeof(arr[0]);

th(arr,sz);

for (i = 0; i < sz; i++)

{

 printf("%d  ", arr[i]);

}

return 0;

}

以上代码虽然能实现冒泡排序,但需要循环多次,浪费内存,比较多次,效率低。

现对代码进行修改如下


#include<stdio.h>

void th(int arr[], int sz)

{

//确定冒泡排序的趟数

int i = 0;

for (i = 0; i < sz - 1; i++)

{

 int flag = 1;//假设排序是数据已经有序;


 //每一次冒泡排序

 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)

 {

  break;

 }

}

}

int main()

{

//对arr进行排序,顺序为升序

int i = 0;

int arr[] = { 9,8,7,6,5,4,3,2,1,0 };

int sz = sizeof(arr) / sizeof(arr[0]);

th(arr, sz);

for (i = 0; i < sz; i++)

{

 printf("%d  ", arr[i]);

}

return 0;

}

取数组地址时,arr表示数字首元素的地址,&arr【0】表示数组首元素的地址,&arr表示整个数组,从首元素地址开始取,sizeof()也是取整个数组地址

标签:sz,arr,int,study,daily,++,冒泡排序,sizeof
From: https://blog.51cto.com/u_15918782/5983874

相关文章

  • daily study 4
    在递归的基础上学习迭代。#include<stdio.h>//求n的阶乘intFacl(intn)//循环方式实现求n的阶乘{ inti=0; intret=1; for(i=1;i<=n;i++) ret*=i;......
  • 虚假新闻检测(CANMD)《Contrastive Domain Adaptation for Early Misinformation Detect
    论文信息论文标题:ContrastiveDomainAdaptationforEarlyMisinformationDetection:ACaseStudyonCOVID-19论文作者:ZhenruiYue,HuiminZeng,ZiyiKou,LanyuS......
  • daily study 4
    学习函数与递归(1)函数自己调用自己的一种方法,用简单的方法把复杂化简单,层层转化为简单的代码,大事化小常见问题:栈溢出。(stackoverflow)内存分为:栈区:局部变量,函数形参堆区:动态......
  • windows PHPStudy Apach…
    在设置Apache+SSL之前,需要做:安装Apache,下载安装Apache时请下载带有ssl版本的Apache安装程序.并且ssl需要的文件在如下的位置: 创建SSL证书(注意,我下载的是PHP......
  • daily study 3
    函数的调用:1传值调用:函数的形参实参分别占有不同内存块2,对形参的修改不会影响实参。2.传址调用:把函数外部穿件变量的内存地址传递给函数的一种调用,可以让函数和外边的变量真......
  • daily study 3
    学习goto语句,可以直接跳到需要的位置。学习函数,分为库函数和自定函数,学习函数的参数,调用,嵌套调用和链式调用,函数的声明和定义,函数的递归c语言库函数:io函数,字符串操作函数,字......
  • daily study
    1.编写猜数字游戏:电脑生成随机数,猜对猜大猜小都有提示,可以反复玩。使用dowhile语句,先执行一次,再判断是否继续游玩。#include<stdio.h>#include<stdlib.h>#include<time.h......
  • the third study--2022.12.20
    提高程序可读性的四个技巧1.选择有意义的函数名。(例如:身高--height;体重--weight;英寸--foot等等)2.写注释。当有些函数名不好解释时,可以通过在旁边写注释来进行解释;也可......
  • Study in campus
    TheyareexperiencingsomethingverydifferentfromthetraditionalfactorymodelofAmericaneducation,inwhicheveryoneontheassemblylineisdeliveredth......
  • 给iOS工程增加Daily Build
    前言DailyBuild是一件非常有意义的事情,也是敏捷开发中关于“持续集成”的一个实践。DailyBuild对于开发来说有如下好处:保证了每次checkin的代码可用,不会造成整个工程编译......