【c++程序】判断数组的排列方式

#include<iostream>
using namespace std;
int find(int,int [],int);
int find1(int,int [],int);
bool add(int a[],int n);
int main()
{
	int a[]={22,44,66,88,1,32,64};
	if(add(a,7)==1)
	{
		cout<<"采用二分算法得到的位置为"<<find1(44,a,7)+1<<endl;
	}
	else
		cout<<"采用递增算法得到的位置为"<<find(44,a,7)+1<<endl;
}
int find(int m,int a[],int n)//递增法
{
	for(int i=0;i<n;i++)
	{
		if(a[i]==m)
			return i;
	}
	return n;
}
int find1(int m,int a[],int n)//二分法
{
	int o=0,h=n-1,i;
	while(o<=h)
	{
		i=(o+h)/2;
		if(a[i]==m)
		{
			return i;
		}
		if(a[i]<m)
		{
			o=i+1;
		}
		else
			h=i-1;
	}
	return n;
}
bool add(int a[],int n)
{
	for(int i=1;i<n;i++)
	{
		if(a[i]<a[i-1])
			return false;
	}
	return true;
}

时间: 2024-07-31 12:40:36

【c++程序】判断数组的排列方式的相关文章

在Java中判断数组中包含某个元素的几种方式的比较

闲来无事,将java中判断数组中包含某个元素的几种方式的速度进行对比,直接上代码 talk is cheap, show you the code package test.contain.lishaojie; import java.util.Arrays;import java.util.HashSet;import java.util.Set; public class TestContain { /** * @param args */ public static void main(S

iOS 判断数组是否为空

有人说可以用([array count]==0 )来判断是否为空,都是坑,如果array为空的话,执行count就会直接报错,程序崩溃退出. 正确判断NSArray是否为空的方法:用 (!array) if(array != nil && ![array isKindOfClass:[NSNullclass]] && array.count !=0){ //执行array不为空时的操作 } 这样才是iOS判断数组是否为空的准确方式.

判断数组中是否含有该整数

题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序, 每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 思路: ①对于一般数组,普通遍历方式即可判断数组中是否含有该元素.对于二维数组,两层for循环即可,时间复杂读为o(n*n); ②对于本题,二维数组行按升序排列,列也按升序排列,我们可以使用一点小技巧:从数组的左下角开始遍历数组,能更有效率的解决问题. 具体代码: 1 public class

java代码实现:12个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二排比对应的第一排的人高,问排列方式有多少种?

此题参考与其他人思路, 2个解题方式. 1. 1 /** 2 * 用java代码实现:12个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二排比对应的第一排的人高,问排列方式有多少种? 3 * 状态树方式解 4 * 用状态生成树的方式来做的,先把12个人按从低到高一次编号, 5 * 从(1 ; 2)出发,加入3和4的时候生成(1,3 ; 2,4)和(1,2 ; 3,4), 6 * 然后加入5和6,分别从前面的两个状态出发,可以生成5种状态,就是说6个人时有5种排列 7 * @author

[转]PHP 判断数组是否为空的几种方法

来源:http://begeek.cn/post/5836.html?_biz=MjM5OTA1MDUyMA==&mid=407358558&idx=2&sn=b21877f23bf4063fa311185009c1f0b7&scene=0#wechat_redirect1468239755008 1. isset功能:判断变量是否被初始化 说明:它并不会判断变量是否为空,并且可以用来判断数组中元素是否被定义过 注意:当使用isset来判断数组元素是否被初始化过时,它的效率

Java中数组的初始化方式

Java中数组的初始化方式    初始化方式有两种: 1.静态初始化:初始化时由程序猿显式指定每一个数组元素的初始值,由系统指定数组长度 2.动态初始化:初始化时由程序猿仅仅指定数组长度,由系统为数组元素分配初始值

算法--判断数组中是否有重复值

判断数组中是否有重复值 第14节 重复值判断练习题 请设计一个高效算法,判断数组中是否有重复值.必须保证额外空间复杂度为O(1). 给定一个int数组A及它的大小n,请返回它是否有重复值. 测试样例: [1,2,3,4,5,5,6],7 返回:true Java (javac 1.7) 代码自动补全 1 import java.util.*; 2 3 public class Checker { 4 public boolean checkDuplicate(int[] a, int n) {

判断数组是不是某二叉搜索树的后序遍历

题目:输入一个数组,判断数组是不是某二叉搜索树的后序遍历.输入的数组的任意两个数字都不相同 分析:要明白题目的意思,意思就是判断一个数组是否是某个搜索树的后序遍历.首先要搞清搜索树的含义:跟结点大于左子树而小于右子树.其次,数组的最后一个结点一定是后序遍历的根节点.所以我们只要满足这两个条件,再通过递归就可以解出来了.代码如下: // 二叉搜索树的遍历序列.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream

LeetCode:Contains Duplicate II - 判断数组内是否有重复元素2

1.题目名称 Contains Duplicate II(判断数组内是否有重复元素2) 2.题目地址 https://leetcode.com/problems/contains-duplicate-ii/ 3.题目内容 英文:Given an array of integers and an integer k, find out whether there are two distinct indices i and j in the array such that nums[i] = nu