精华内容
下载资源
问答
  • 倒v
    千次阅读
    2019-02-18 19:23:47

    现在来写一个求极值的算法,需求为:假设有一个整形数组,数值排列顺序为V型,即数值由大到小,再由小到大,例如int array[] = {100,99,93,92,91,89,12,9,7,5,3,1,6,8,87,123},现在要求的就是array的最小值,及其下标;类似的有倒V型排序的数组,求最大值及其下标,例如int array1[] = {1,2,3,4,12,34,45,56,78,5,3,2,1}。

        实现这个算法也比较简单,这里采用的是类二分查找法,下边直接看代码:

    //头文件
    #ifndef __LMSPUBLICLIB_H__
    #define __LMSPUBLICLIB_H__
    
    #include <stdio.h>
    #include <unistd.h>
    #include <string>
    #include <string.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <assert.h>
    #include <vector>
    
    using namespace std;
    
    #ifndef MAX_PATH
    #define MAX_PATH 256
    #endif
    
    namespace LmsPublicLib
    {
        void FindExtremum(const int array[], int len, int &value, int &index, bool findMinValue = true);
    };
    
    #endif //__LMSPUBLICLIB_H__
    
    //源文件
    #include "LmsPublicLib.h"
    
    namespace LmsPublicLib
    {
        /*
        * array:查找的数组
        * len:数组长度
        * value:查找到的极值
        * index:查找到的极值的坐标
        * findMinValue: true 为查找V型排序的最小值,false为查找倒V型排序的最大值
        */
        void FindExtremum(const int array[], int len, int &value, int &index, bool findMinValue)
        {
            if(len <2)
            {
                return;
            }
            
            int minIndex = 0;
            int maxIndex = len-1;
            int midIndex = (maxIndex - minIndex)/2;
    
            while( (maxIndex - minIndex)>1 )
            {
                if( array[midIndex] > array[midIndex+1] )
                {
                    if(findMinValue)    //查找的是最小值
                    {
                        minIndex = midIndex;
                    }
                    else                //查找的是最大值
                    {
                        maxIndex = midIndex;
                    }
                }
                else
                {
                    if(findMinValue)    //查找的是最小值
                    {
                        maxIndex = midIndex;
                    }
                    else                //查找的是最大值
                    {
                        minIndex = midIndex;
                    }                
                }
                midIndex = (maxIndex - minIndex)/2 + minIndex;
            }
    
            if(findMinValue)
            {
                index = array[maxIndex]<array[minIndex] ? maxIndex : minIndex;
            }
            else
            {
                index = array[maxIndex]>array[minIndex] ? maxIndex : minIndex;
            }
            
            value = array[index];    
        }
    }
    //main.cpp测试程序
    #include "LmsPublicLib.h"
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char* argv[])
    {   
        int array[] = {100,99,93,92,91,89,12,9,7,5,3,1,6,8,87,123};
        int array1[] = {1,2,3,4,12,34,45,56,78,5,3,2,1};
    
        int value = -1;
        int index = -1;
        LmsPublicLib::FindExtremum(array, sizeof(array)/sizeof(int), value, index);
    
        cout << "array minValue = " << value << endl;
        cout << "index = " << index << endl << endl;
    
        LmsPublicLib::FindExtremum(array1, sizeof(array1)/sizeof(int), value, index, false);
    
        cout << "array1 maxValue = " << value << endl;
        cout << "index = " << index << endl;
    
        return 0;
    }

    编译执行如下:

    从结果看出,符合我们的预期,当然也可以考虑其他的方式,欢迎留言讨论。

     

     

    更多相关内容
  • 倒V天线的DIY制作.pdf

    2021-10-07 13:17:35
    倒V天线的DIY制作.pdf
  • 为揭示倒V形钢支撑加固RC框架在罕遇地震作用下的性能,建立了4层RC框架结构及在RC框架结构上后加钢支撑的结构模型,并对模型进行了PUSHOVER分析。从基底剪力-顶点位移曲线、楼层位移曲线及出铰顺序等方面对结构在罕遇...
  • 倒V天线的DIY制作.doc

    2021-09-30 19:48:59
    倒V天线的DIY制作.doc
  • 倒V-天线的DIY制作.doc

    2021-10-11 14:38:31
    倒V-天线的DIY制作.doc
  • 提高倒V型斜面石材蜂窝板幕墙安装质量.doc
  • 羽睿计时定时器主要用于教学环境中的计时操作,例如,游戏计时、演讲计时、表演计时、比赛计时、考试计时等。程序内设30秒计时、60秒计时、2分钟计时等等
  • AD走线弧脚本Fillet_V1.1.1.rar,AD走线弧脚本Fillet_V1.1.1,AD弧Fillet_V1.1.1.rar,AD走线弧脚本.pptx
  • 为您提供极简高考计时下载,极简高考计时是一款简单的高考计时软件,支持鼠标穿透,就简简单单一个计时,功能多了的话,看桌面容易分心!使用方法 怎么打开设置呢: 点击主程序后,右下角托盘图标左键单击...
  • 本插件适用于Discuz! X3站点的帖子, 投票, 发布悬赏, 发起活动, 出售商品 等所有可以使用编辑器的地方,很好的解决了目前计时的应用插件无法在上述页面中自定义使用的问题,其特点简
  • FlyClock是一款简单实用的PPT计时工具软件,经常要组织各类发布与竞赛,但时间的控制一直是个难题,利用此软件可以轻松的控制PPT的播放时间,使会议按自己的计划进行。FlyClock(PPT
  • 问号怎么输问号怎么打?问号来自于西班牙语。倒立的问号代表的是接下来的句子或者从句时一个问题。下面就和小编一起来看看问号怎么打出来的。1、点击你想要插入问号的位置。在输入问号之前,请确保光标...

    倒问号怎么输倒问号怎么打?倒问号来自于西班牙语。倒立的问号代表的是接下来的句子或者从句时一个问题。下面就和小编一起来看看倒问号怎么打出来的。

    b6e01802f036ca945ddea8ec1affd6f5.png

    1、点击你想要插入倒问号的位置。在输入倒问号之前,请确保光标位于屏幕中正确的位置。

    5a014b9ef317591c8db6daa95cac4eed.png

    2、找到键盘上的Alt键。在空格键的两侧各有一个Alt键。你只需要使用其中一个Alt键即可

    5f7db3dde29cc3317044b7b75302a092.png

    3、按下Alt键不松开。然后用另一只手,在键盘的数字区敲击0191键。

    27e576c9833378e1230dd52218beed18.png

    4、如果这个组合键不起作用,可以尝试按住Alt键,依次输入数字168。

    67c522e0490f58516b230f41b14e16c9.png

    5、松开Alt键。接着,倒问号就会出现在屏幕中光标所在的位置。

    f6a52e82692770597c7a98db1b341c4d.png

    1、点击你想要插入倒问号的位置

    在输入倒问号之前,请确保光标位于屏幕中正确的位置。例如,你正在使用西班牙语书写问句,你需要将光标放在问句的开头位置,并单击鼠标左键。

    2、找到键盘上的Alt键

    看一下键盘的左下角和右下角位置,在空格键的两侧各有一个Alt键。你只需要使用其中一个Alt键即可,可以根据你的用手偏好选择使用其中一侧的Alt键。例如,如果你是个右撇子,你可能倾向于使用左侧的Alt按键。

    3、按下Alt键不松开

    4、松开Alt键

    1、点击你想要插入倒问号的位置

    在输入倒问号之前,请确保光标位于屏幕中正确的位置。例如,你正在使用西班牙语书写问句,你需要将光标放在问句的开头位置,并单击鼠标左键。

    2、按下键盘上的开始按钮

    在屏幕的左下方位置,有一个圆形的彩色Windows的图标。这就是开始按钮。

    3、从开始菜单中选择所有程序

    一旦你点击开始菜单,屏幕中就会出现几个选项。依次选择所有程序,然后是附件,接着选择系统工具选项,最后选择字符映射表。

    接着会出现一个窗口,窗口中有一个大网格,其中列有各种系列的字符和符号。

    4、点击字符映射表

    5、选择倒问号

    6、点击选择按钮来输入你选择的符号

    按下Ctrl和V键来复制倒问号,按下Ctrl和V键来将倒问号粘贴到别的地方。或者,右键点击鼠标(可能不适用于某些程序),然后点击粘贴。

    以上就是关于怎么在电脑上打出倒问号的详细介绍,希望能帮助到您。

    一般手机中都自带有很多新奇有趣的符号,比如反向问号,那么手机反向问号怎么打?想知道的话就来看看今天的视频吧。

    b6898a57a68a8deb8e5d221be6a3e11f.png

    然后选择英文模式,在英文模式找到问号,长按问号符号即会出现反向问号弹窗,点击即可成功输入反向问号。

    关键词:  电脑倒过来的问号怎么打?特殊符号倒问号输入的方法

    展开全文
  • 迷你计时器V1.0.0

    2022-01-12 10:16:40
    一款计时软件,可按中考、高考、考研及自定义时间进行计时,另外还具有显示名言警句、更换背景等功能。适合在班级白板中展示中考、高考、考研计时,是考试冲刺阶段提示计时的首选。
  • 大屏幕事件计时是一款全屏显示事件计时的小软件,快来下载体验吧。 软件特色 1、 绿色软件、无需安装、无插件 2、 大字体、全屏显示 3、 可设定是否显示文字行,计时(精度:秒) 4、 可自定义背景图片 5、 可...
  • 为您提供QJC计时关机下载,QJC计时关机是一款小巧的支持设置电脑定时关机的软件,QJC计时关机可以帮助用户按设定的时间关机,可以按秒计时,使用起来非常方便。使用方法 1、下载软件包 2、运行之后即可设置...
  • GAMP-V模型图形说

    2014-06-19 13:26:57
    GAMP-V模型图形说,软件开发的各个阶段的简单说明
  • 大屏幕事件计时(事件计时软件)是一款十分专业的事件计时软件。你在找功能强大的计时软件吗?绿色先锋小编为你推荐大屏幕事件计时中文版。适用于高考、重大比赛、考研等计时,支持替换bg.jpg,可更换背景...
  • 桌面计时 v1.46.zip

    2019-07-14 12:44:04
    桌面计时 v1.46更新日志: 1.修复了在窗口勾选最前端显示选项后,仍会出现模拟透明的效果的BUG 2.修复了在窗口勾选最前端显示选项后,界面无法编辑的BUG 3.修复了初次添加新窗口时,计时不会启动的BUG (升级...
  • 适用于office、wps制作的演示文档
  • 齐齐计时器为免费软件,专为埋头于电脑工作的人士设计,适时提醒您该休息一下了。计时为固定选项,计时结束会有声音提示。
  • 计时器-v2.21.0606

    2020-08-02 14:28:04
    计时工具可用于演示PPT、比赛等需要控制时间的场景,详细说明请见https://blog.csdn.net/techinged/article/details/107625799
  • 计时_zhufeng_V_1_0.py

    2021-11-27 14:08:03
    python写的计时器,可使用两种不同的方式(时长、截止时间)设定时间。竞赛、比赛、年会、教学活动计时的好帮手。
  • 数字电子时钟v5.0_mini版v2.1_计时v2.0.zip,数字电子时钟v5.0_mini版v2.1_计时v2.0,mini.png,DigitalClockDaoJiShi.exe,config.ini,main.png,软件说明介绍.txt,SriClocks.dll,DigitalClock.exe,DigitalClockMini...
  • 羽睿计时定时器主要用于教学环境中的计时操作,例如,游戏计时、演讲计时、表演计时、比赛计时、考试计时等。程序内设30秒计时、60秒计时、2分钟计时等等选项,也可以自由设定计时时间,选项...
  • 小瘦牛计时器是一款绿色、小巧、简单易用的桌面计时器,可以为生活中节假日或重要的日子设置计时,界面简约美观,隐藏在桌面托盘端,不妨碍使用,是生活的好帮手。
  • 微润事件计时软件可以满足你对计时的需求。微润事件计时软件能够自定义界面和文字,输入你想要的就可以进行计时显示,时间精准而且界面清晰,能够时刻给你提醒,看着时间一秒秒再过去你要抓紧喽! 微润...
  • 大漠驼铃计时软件是一个简单易用的计时软件,启动软件后,在空白处右键,选择“设置时间”,在事件中输入内容如“中考”、“结婚纪念日”,在时间在输入日期,时间。保存后就可以开始计时了。 大漠驼铃...
  • 计时提醒是一款绿色小巧、操作简单的工具,它的功能就是帮助用户进行计时提醒,只要用户选择要计时的时间和铃声,并且设置执行命令,然后点击“开始”按钮即可。这款计时提醒软件简单并且实用,提醒之后用户...
  • 齐齐计时器 v2.0.zip

    2019-07-13 10:52:21
    齐齐计时器是一个小巧的计时工具,1小时提醒工作该休息一下了,10分钟提醒是不是有事情需要答复?1分钟大概可以玩个游戏吧。
  • 365时分秒计时软件是一款可以时、分、秒计时;自定义设置功能,可安装用户需求设置...365时分秒计时软件 v1.5更新内容: 1、新增快捷键操作按钮功能,按a键开始,按s键暂停, 按d键重置 。 2、调整部分bug。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 99,524
精华内容 39,809
关键字:

倒v