贪心算法之货仓选址问题

ops/2024/9/24 17:13:20/
#include<stdio.h>
#include<stdlib.h>
#include<math.h>//算法>贪心算法之货仓选址问题/***  void* p是万能指针,可以和其它任意类型的指针进行转换,前提是确保转换是合法的*/
//写好用于qsort的比较函数,这里写的函数一般用于升序排序
int compare(const void* a, const void* b)
{//(int*)为先将指针a强制类型转换为整型指针,前面的*为取值操作return(*(int*)a - *(int*)b);
}//找出数组排好序后处于中间位置的数
int find(int* shops, int arrNum)//shops为数组名,arrNum为数组的长度
{qsort(shops,arrNum,sizeof(int),compare);  //因为是整型数组,所以第三部分写的是sizeof(int)int pos = shops[arrNum / 2];return pos;
}//求总的距离
int sum(int pos,int* shops, int arrNum)
{int total = 0;for (int i = 0; i < arrNum; i++){total += abs(pos - shops[i]);}return total;
}int main(int argc, char* argv[])
{int n = 0;printf("请输入商店数量:");scanf_s("%d",&n);int* shops = (int*)malloc(sizeof(int) * n);printf("输入商店坐标\n");for (int i = 0; i < n; i++){printf("第%d间商店:",i+1);scanf_s("%d",shops+i);}int pos = find(shops, n);int total = sum(pos, shops, n);printf("货仓坐标:%d,最短距离:%d\n",pos,total);return 0;
}

在这里插入图片描述


http://www.ppmy.cn/ops/92526.html

相关文章

docker 本地image文件

docker 本地image文件 要管理Docker的本地image文件&#xff0c;你可以使用Docker命令行工具。以下是一些常用的命令&#xff1a; 列出所有本地image文件&#xff1a; docker images拉取远程image到本地&#xff1a; docker pull <image_name>删除本地的一个或多个im…

C++入门基础知识

在之前我们学习了C语言和初阶数据结构的相关知识&#xff0c;现在已经有了一定的代码能力和对数据结构也有了基础的认识&#xff0c;接下来我们将进入到新的专题当中&#xff0c;这个专题就是C。在C中我们需要花费更大的精力和更长的时间去学习这门建立在C语言基础之上的计算机…

LVS+Keepalived群集

Keepalived的原理 keepalived采用VRRP热备份协议是西安Linux服务器的多级热备功能 VRRP是针对服务器的一种备份解决方案 由多台服务器组成一个热备组&#xff0c;通过共用的虚拟IP地址对外提供服务 每个热备份组内同时只有一台主服务器提供服务&#xff0c;其他服务器处于冗余状…

数字信号处理2: 离散信号与系统的频谱分析

文章目录 前言一、实验目的二、实验设备三、实验内容四、实验原理五、实验步骤1.序列的离散傅里叶变换及分析2.利用共轭对称性&#xff0c;设计高效算法计算2个N点实序列的DFT。3.线性卷积及循环卷积的实现及二者关系分析4.比较DFT和FFT的运算时间5.利用FFT求信号频谱及分析采样…

fl studio 24.1.1.4239中文破解版2024最新V24完整的软件音乐制作环境或数字音频工作站(DAW)宿主软件

fl studio 24.1.1.4239中文破解版2024最新V24完整的软件音乐制作环境或数字音频工作站(DAW)宿主软件。FL Studio&#xff0c;常称水果&#xff0c;是一款功能强大的编曲软件&#xff0c;集编曲&#xff0c;录音&#xff0c;剪辑&#xff0c;混音于一身&#xff0c;简单易上手&a…

【C++】初识面向对象:类与对象详解

C语法相关知识点可以通过点击以下链接进行学习一起加油&#xff01;命名空间缺省参数与函数重载C相关特性 本章将介绍C中一个重要的概念——类。通过类&#xff0c;我们可以类中定义成员变量和成员函数&#xff0c;实现模块化封装&#xff0c;从而构建更加抽象和复杂的工程。 &…

【Android】物理接触式touch的type

在Android设备中&#xff0c;我们可以使用手指来进行屏幕触控操作&#xff0c;也有触控笔等设备&#xff0c;也有自动点击器这样的设备&#xff0c;这里我们来看看他们在MotionEvent中的type是什么&#xff0c;如果type一致&#xff0c;不同的设备touch事件可以共存。 在代码中…

代码规范 —— 并发编程规范

优质博文&#xff1a;IT-BLOG-CN 【1】【强制】获取单例对象需要保证线程安全&#xff0c;其中的方法也要保证线程安全。 说明&#xff1a; 资源驱动类、工具类、单例工厂类都需要注意。 【2】【强制】创建线程或线程池时请指定有意义的线程名称&#xff0c;方便出错时回溯。…