判断数组是不是正序

自己写的粗糙算法:

function in_asc_order($arr) {

// Program your algorithm here to be tested

$arr_length = count($arr);

if($arr_length==0){

return 0;

}

for($i=0;$i<$arr_length;$i++){

if($i > 0  && $arr[$i] < $arr[$i-1]){

return 0;

}

}

return 1;

}

大神写的:

function in_asc_order($arr) {

$temp_arr= $arr;

sort($arr);

return $temp_arr === $arr;

}

原文地址:https://www.cnblogs.com/farmerworker/p/9612520.html

时间: 2024-10-21 12:20:26

判断数组是不是正序的相关文章

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

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

C#数组的排序(正序逆序)

这种排序 超级简单的 ! using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication4 { class Program { static void Main(string[] args) { string[] str = { "d","h","a","c",&

c - 逆序/正序输出每位.

1 #include <stdio.h> 2 #include <math.h> 3 4 /* 5 判断一个正整数的位数,并按正序,逆序输出他们的位. 6 */ 7 8 int 9 invert(int); 10 11 void 12 order(int, int); 13 14 int 15 main(void) { 16 int n = 56789; 17 printf("original:%d\n", n); 18 int bitCont = invert

poj2299(离散化+树状数组求逆序)

数据范围比较大,先用离散化将数据映射到可控的范围,然后应用树状数组求逆序求解. 总共有N个数,如何判断第i+1个数到最后一个数之间有多少个数小于第i个数呢?不妨假设有一个区间 [1,N],只需要判断区间[i+1,N]之间有多少个数小于第i个数.如果我们把总区间初始化为0,然后把第i个数之前出现过的数都在相应的区间把它的值定为1,那么问题就转换成了[i+1,N]值的总和.再仔细想一下,区间[1,i]的值+区间[i+1,N]的值=区间[1,N]的值(i已经标记为1),所以区间[i+1,N]值的总和等

排序:正序冒泡,交错冒泡,插入排序,选择排序,快速排序

1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<time.h> 4 #include<string.h> 5 const int N=10; //修改随机数据量 6 bool onOroff=1; //数组打印开关:1要打印,0不打印 7 void bubble_sort(int a[],int n) 8 { 9 for(int i=0 ; i<N ; ++i) 10 { 11 for(int j

Java8对list排序(正序倒序)

话不多说直接上干货 这里我写了一个list数组里边add了三个Order实体(我的ucId,price,qty都是int类型) 第一个实例:我对price进行从小到大的排序(我的price是int类型) 显然这里的第一种方式已经给出提示了,让使用第二种更简洁的方式去编写. 第二个实例:我对price和qty进行正序排序 显然这里也是推荐使用第二种方式 好了重点来了 第三个实例:对price正序,qty倒序 我一开始这么写 第一种方式得到的结果(正确的) 第二种方式得到的结果(错误的),看源码应该

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

1.题目名称 Contains Duplicate(判断数组内是否有重复元素) 2.题目地址 https://leetcode.com/problems/contains-duplicate/ 3.题目内容 英文:Given an array of integers, find if the array contains any duplicates. Your function should return true if any value appears at least twice in

哈希(6) - 判断数组中是否存在重复元素且距离在K之内

给定一个包含多个重复元素的未排序的数组.另外给定一个数字k,且k小于数组大小.判断数组中是否包含重复元素,且它们相隔的距离处于范围k之内. 例如: Input: k = 3, arr[] = {1, 2, 3, 4, 1, 2, 3, 4} Output: false 所有重复元素的距离>k. Input: k = 3, arr[] = {1, 2, 3, 1, 4, 5} Output: true 存在重复元素1,且距离为3(==k). Input: k = 3, arr[] = {1, 2,

编写一个宏,实现判断数组a元素的个数

#include <iostream> using namespace std; #define TestArrayLengthA(A) sizeof(A)/sizeof(*A) #define TestArrayLengthB(B) sizeof(B)/sizeof(B[0]) //这样测出的是数组可以放多少个元素,比如Array[100],他返回的是100, //不论你初始化还是没有初始化 int TestArrayLength(T *a) { int count = 0; T *p =