用递规与分治策略,找出数组中最大元素的位置

news/2024/7/4 1:41:18 标签: string, class
class="baidu_pl">
class="article_content clearfix">
class="htmledit_views">

这个问题是用递规与分治策略,找出数组中最大元素的位置。就问题本身而言,很简单,并且有很多种更高效的实现方法,本文意在介绍递规与分治的思想。

源代码:

/**
*用分治法找出数组中最大元素的位置
*/
public class  MaxPosition
{
 static int MaxElePosition(int a[],int l,int r)
 {
  if(l < r)
  {
   int mid = (l+r)/2;
   int x = MaxElePosition(a, l, mid);
   int y = MaxElePosition(a, mid+1, r);
   if(a[x] >= a[y])
    return x;
   else return y;

  }
  return l;
 }
 public static void main(String[] args)
 {
  
  int a[] = {12,48,45,2,100,9,56,10,101};
  System.out.println(MaxElePosition(a, 0, 8));
 }
}


http://www.niftyadmin.cn/n/1870236.html

相关文章

c++程序内存泄露检测工具

功能&#xff1a; 用于检测c程序的内存泄露。 原理&#xff1a; 其实很简单&#xff0c;就是通过函数的重载机制&#xff0c;捕获应用程序的new, new[] , delete , delete[], malloc,calloc,free等内存操作函数。 特点: 由于在检测的过程中&#xff0c;需要记录用户程序内存分…

STL源码学习,开篇。

一 背景介绍 从事coding这一行已经4年了&#xff0c;期间用过c和java&#xff0c;但是用的最多的还是c。说来惭愧&#xff0c;什么都不精通&#xff0c;至今一事无成。其实最感兴趣的还是c语言&#xff0c;因为他灵活、多变。同时&#xff0c;这门语言也造成了学习、理解、应用…

基于内存池的空间配置器

一、设计思路 内存池分两部分&#xff0c;一部分是内存池列表&#xff0c;一部分是没有分割的原始连续内存。 &#xff08;1&#xff09; 内存池列表 内存池由16个列表组成&#xff0c;每个列表维护大小相同的内存块&#xff0c;内存块的大小是8的倍数。最小的内存块是8字节&a…

STL空间配置器的适配器

前面讲了simple_alloc 和alloc_pool将会作为bbg的STL容器的空间配置器&#xff0c;但是这两个类都不是泛型的&#xff0c;不能为所有类型自动提供内存分配&#xff0c;这时候就需要一个空间配置器的适配器来完成这功能。 我们将会通过下面一组预编译的宏&#xff0c;来决定到底…

STL空间构造器

当c程序用new/delete运算符进行动态内存操作时&#xff0c;编译器为我们准备了两项工作。一是&#xff0c;调用全局内存分配函数 operator new() / operator delete()&#xff1b; 二是&#xff0c;调用 “构造函数”和“析构函数”。 下面举个例子说明&#xff1a; class Te…

使用JDBC连接数据库(一)

JDBC是由java编程语言编写的类及接口组成&#xff0c;同时它为程序开发人员提供了一组用于实现对数据库访问的JDBC API,并支持SQL语言。利用JDBC可以将JAVA代码连接到oracle、DB2、SQLServer、MYSQL等数据库&#xff0c;从而实现对数据库中的数据操作的目的。 一、JDBC简介 J…

小议c++文件流中文件路径

1.1 小议c文件流中文件路径 在论坛中闲逛时&#xff0c;经常发现有朋友调试c/c文件流的代码时&#xff0c;遇到文件路径的问题。下来我结合自己的经验&#xff0c;一起探讨一下。 1.1.1 文件路径的基本概念 OS的文件系统是一个树状结构&#xff0c;有目录、文件的概念。…

字面常量(literal constant)

在我们的程序中经常会出现&#xff0c;整数、浮点数、字符、字符串&#xff0c;在c 中还有 true 、false等。例如&#xff1a; bool gz (int b ){return b > 0 ? true : false;}int main(int argc, char *argv[]) { 22 33L;char *str "hello world";3.0 2…