精华内容
下载资源
问答
  • //判断一个数组是否有序(从小到大) public class isSorted { public static boolean isSorted(int arr[]){ for (int i = 0; i <arr.length-1; i++) { if(arr[i]>arr[i+1]){ return ...
    //判断一个数组是否有序(从小到大)
    public class isSorted {
        public static boolean isSorted(int arr[]){
            for (int i = 0; i <arr.length-1; i++) {
                if(arr[i]>arr[i+1]){
                    return false;
                }
            }
            return true;
        }
        public static void main(String[] args){
            int[] arr = {1,2,4,5,7};
            System.out.println(isSorted(arr));
        }
    }
    
    
    展开全文
  • 判断一个数组是否有序

    万次阅读 2017-07-18 20:03:28
    一般来说,判断一个数组或序列是正序,倒序还是乱序,需要我们将这个数组完整的遍历一遍后才能得出答案,它不像折半查找那样只处理少量的数据便能得出结论,因为一段包含成千上万个元素的有序序列,哪怕将其中两个元素的...

            一般来说,判断一个数组或序列是正序,倒序还是乱序,需要我们将这个数组完整的遍历一遍后才能得出答案,它不像折半查找那样只处理少量的数据便能得出结论,因为一段包含成千上万个元素的有序序列,哪怕将其中两个元素的位置调换都能将这个序列变成乱序序列.如下面这段序列,只是数字8和9调换,就变成了乱序的.

    [0, 1, 2, 3, 4, 5, 6, 7, 9, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

    那么,怎样才能快速的判断序列是否有序呢?

    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]  // 序列arrayA
    [19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]  // 序列arrayB
    [12, 7, 2, 5, 4, 14, 6, 13, 1, 16, 18, 19, 9, 8, 15, 11, 10, 0, 17, 3]  // 序列arrayC

           上面三段序列,分别为正序, 乱序和无序, 我们观察发现, 假如用冒泡法排序的单次冒泡循环对以上三个数组进行排序(排序顺序为从小到大),  第一个序列(正序序列)的冒泡次数为0;  第二个序列(倒序序列)的冒泡次数为 : 序列长度 - 1;  第三个序列(乱序序列)的冒泡次数介于上面两种序列之间, 且中途"气泡"(即需要进行交换的元素)发生了变化. 以此为规律,  我们可以利用计数冒泡次数和气泡是否发生了改变来判断一段有限序列是正序, 倒序还是无序.
     

    // 根据数组需要冒泡的次数判断数组为顺序,逆序还是无序
        public static int lookArray(int[] array) {
            // 冒泡的次数
            int count = 0;
            // 上一次交换的"气泡"
            int pop = array[0];
            // 利用单次冒泡检验数组需要冒泡的次数
            for (int j = 0; j < array.length - 1; j++) {
                if (array[j] > array[j + 1]) {
                    // 判断此次需要向上冒的气泡是否和上次的相同,不同为乱序
                    if (pop != array[j]) {
                        // 若气泡发生了变化,证明是无序的,停止遍历,返回 0
                        return 0;
                    }
    
                    int temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                    // 两相邻元素交换一次值,count计数一次
                    count++;
                    pop = array[j + 1];
                    //气泡向右移动,可能是逆序,对于逆序序列,还需保证气泡左侧所有的元素大于右侧
                    //所以当左侧最小的元素小于右侧元素时,为无序序列
                    if (j + 2 < array.length ){
                       if (array[j] < array[j+2]){
                        return 0;
                       }
                    }
                }
            }
            // 正序返回 1, 倒序返回 -1
            if (count == 0) {
                return 1;
            } else {
                return - 1;
            }
        }

        至此,我们实现了判断序列是否有序的算法. 我们可以在程序主入口main中调用这个方法,用一段乱序序列检验输出:
            

    int[] array = {7,1,2,3,4,5,6,0};
    int x = lookArray(array);
    
    if (x == 1) {
        System.out.println("正序");
    } else if (x ==  - 1) {
        System.out.println("逆序");
    } else if(x == 0) {
        System.out.println("无序");
    }

    输出为:

    无序

    至此,我们简单的实现了判断一段有限序列为正序,倒序,乱序的判别方法.

    展开全文
  • php判断一个数组是否有序的方法本文实例讲述了php判断一个数组是否有序的方法。分享给大家供大家参考。具体分析如下:这段代码的时间复杂度为O(n)function JudegSortArray($array) {if ($array [0] > $array ...

    php判断一个数组是否为有序的方法

    本文实例讲述了php判断一个数组是否为有序的方法。分享给大家供大家参考。具体分析如下:

    这段代码的时间复杂度为O(n)

    function JudegSortArray($array) {

    if ($array [0] > $array [1]) {

    $flag = 1;

    } else {

    $flag = 0;

    }

    $temp = $flag;

    $len = count ( $array );

    for($i = 1; $i < $len; $i ++) {

    if ($flag == 0) {

    if ($array [$i] < $array [$i + 1])

    {

    continue;

    } else {

    $flag = 1;

    break;

    }

    }

    if ($flag == 1) {

    if ($array [$i] > $array [$i + 1]) {

    continue;

    } else

    {

    $flag = 0;

    break;

    }

    }

    }

    if ($flag != $temp) {

    echo "无序数组";

    } else {

    echo "有序数组";

    }

    }

    // 测试用例

    $array = array (

    1,

    2,

    3,

    4,

    6,

    5

    );

    $ret = JudegSortArray ( $array );

    echo $ret;

    希望本文所述对大家的php程序设计有所帮助。

    时间: 2015-03-26

    归并算法之有序数组合并算法实现 一个简单的有序数组合并算法:写一个函数,传入 2 个有序的整数数组,返回一个有序的整数数组.实现相当简单,创建一个长度为这两个长度之和的数组,然后分别用三个指针指向这三个数组,找到这两个数组中各个元素在合并数组中的位置并插入,直到某个数组指针到达尾部.再将另一个数组剩下的所有元素,直接放入归并数组尾部.算法的简单实现,需要注意的是对参数的校验,判断数组是否有序. public class MergeOrderedArray { public static int[

    合并有序数组的实现 java版本: 实例代码 public class Merge { //合并有序数组 public static void mergeSort(int a[], int b[], int c[]) { int n = a.length, m = b.length; int i, j, k; i = j = k = 0; while (i < n && j < m) { if (a[i] < b[j]) { c[k++] = a[i++]; } else

    本文实例讲述了C语言实现在数组A上有序合并数组B的方法,分享给大家供大家参考.具体分析如下: 题目:数组A和数组B均有序,数组A有足够大内存来容纳数组B,将数组B有序合并到数组A中 分析:如果由前至后合并,复杂度将会是O(N2),这样的复杂度显然不是最优解,利用两个指针指向两个数组的尾部,从后往前遍历,这样的复杂度为O(n2) 由此可以写出下面的代码: #include #include #include

    假设给定一个有序二维数组,每一行都是从左到右递增,每一列都是从上到下递增,如何完成一个函数,输入这样一个二维数组和一个整数,判断这个整数是否在这个二维数组中.假设一个4×4的有序二维数组:          1          2          8          9          2          4          9          12          4          7          10        13          6          8

    复制代码 代码如下: /** * 折半查找字符在数组中的位置(有序列表) * @param array 被检索的数组 * @param x 要查找的字符 * @type int * @returns 字符在数组中的位置,没找到返回-1 */ function binarySearch(array,x){ var lowPoint=1; var higPoint=array.length; var returnValue=-1; var midPoint; var found=false; whi

    本文实例讲述了php实现有序数组打印或排序的方法.分享给大家供大家参考,具体如下: 有序的数组打印或排序对于php来讲非常的简单了这里整理了几个不同语言的做法的实现代码,具体的我们一起来看这篇php中有序的数组打印或排序的例子吧. 最近有个面试题挺火的--把2个有序的数组打印或排序,刚看到这个题的时候也有点蒙,最优的算法肯定要用到有序的特性. 思考了一会发现也不是很难,假如数组是正序排列的,可以同时遍历2个数组,将小的值进行排序,最后会遍历完一个数组,留下一个非空数组,而且剩下的值肯定大于等于已

    1.前言 昨天碰到一道关于如何解决有序数组的连接问题,这是一个很常见的问题.但是这里要考虑到代码的效率问题,因为要连接的数组都是有序的,这是一个非常重要的前提条件. 2.简单但效率不高的算法 我首先想到的是使用内置的concat方法,然后再对其进行排序,这种方法完全没有考虑到数组是有序的前提条件,代码如下: 复制代码 代码如下: function concatSort(arrA,arrB){      return arrA.concat(arrB).sort(); } 为了弄清楚sort排序到

    整理文档,搜刮出一个java实现向有序数组中插入一个元素,稍微整理精简一下做下分享 package cn.jbit.array; import java.util.*; public class Insert { public static void main(String[] args) { //字符排序 char[] chars = new char[9]; chars[0] = 'a'; chars[1] = 'c'; chars[2] = 'u'; chars[3] = 'b'; cha

    本文实例讲述了Python实现二维有序数组查找的方法.分享给大家供大家参考,具体如下: 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 这题目属于比较简单但又很不容易想到的,问了两个同学,大家一时都没有想出来怎么解决比较快.第一反应都是二分查找.对于每一行进行二分查找,然后查找过程可以把某些列排除掉,这是大家都能想到的基本的思路. 比较好的另一种思路是,首先选取数组右上角

    0.目录 1.遇到的问题 2.创建二维数组的办法 •3.1 直接创建法 •3.2 列表生成式法 •3.3 使用模块numpy创建 1.遇到的问题 今天写Python代码的时候遇到了一个大坑,差点就耽误我交作业了... 问题是这样的,我需要创建一个二维数组,如下: m = n = 3 test = [[0] * m] * n print("test =", test) 输出结果如下: test = [[0, 0, 0], [0, 0, 0], [0, 0, 0]] 是不是看起来没有一点问

    本文实例讲述了Python实现二维数组按照某行或列排序的方法.分享给大家供大家参考,具体如下: lexsort支持对数组按指定行或列的顺序排序:是间接排序,lexsort不修改原数组,返回索引. (对应lexsort 一维数组的是argsort a.argsort()这么使用就可以:argsort也不修改原数组, 返回索引) 默认按最后一行元素有小到大排序, 返回最后一行元素排序后索引所在位置. 设数组a, 返回的索引ind,ind返回的是一维数组 对于一维数组, a[ind]就是排序后的数组.

    前不久对于Python输入二维数组有些不解,今日成功尝试,记以备忘.这里以输入1-9,3*3矩阵为例 n=int(input()) line=[[0]*n]*n for i in range(n): line[i]=input().split(' ') print(line) 使用数据转换为int即可! 以上这篇Python输入二维数组方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们. 您可能感兴趣的文章: 一些Python中的二维数组的操作方法 python中字

    对于二维数组,img_mask [[ 0 0 0 ..., 7 7 7] [ 0 0 0 ..., 7 7 7] [ 0 0 0 ..., 7 7 7] ..., [266 266 266 ..., 253 253 253] [266 266 266 ..., 253 253 253] [266 266 266 ..., 253 253 253]] 显示为图片的代码为: import matplotlib.pyplot as pyplot pyplot.imshow(im_mask) 以上这篇P

    之前提到去除一维数组中的重复元素用unique()函数,如果要去除二维数组中的重复行该怎么操作呢? import numpy as np arr = np.array([[1, 2],[3, 4],[5, 6],[7, 8],[3, 4],[1, 2]]) print(np.array(list(set([tuple(t) for t in arr])))) 输出: [[1 2] [3 4] [5 6] [7 8]] 如果是二维列表,列表中每个元素还是列表 list2=list(set([tup

    本文实例为大家分享了python实现二维数组的对角线遍历,供大家参考,具体内容如下 第一种情况:从左上角出发,右下角结束 要完成的事情,就像下图: 话不多说,直接上Python实现代码与结果展示: # 输出遍历的索引与其对应的值 A = [[1,2,3], [4,5,6], [7,8,9]] n = len(A) for i in range(n+n-1): for j in range(i+1): k = i-j if k=0 and j

    这篇文章主要介绍了Python获取二维数组的行列数的2种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 import numpy as np x = np.array([[1,2,5],[2,3,5],[3,4,5],[2,3,6]]) # 输出数组的行和列数 print x.shape # (4, 3) # 只输出行数 print x.shape[0] # 4 # 只输出列数 print x.shape[1] # 3 或者 In [48]

    本文实例讲述了Python的"二维"字典 (two-dimension dictionary)定义与实现方法.分享给大家供大家参考,具体如下: Python 中的dict可以实现迅速查找.那么有没有像数组有二维数组一样,有二维的字典呢?比如我需要对两个关键词进行查找的时候.2D dict 可以通过 dict_2d = {'a': {'a': 1, 'b': 3}, 'b': {'a': 6}} 来建立,并通过 dict_2d['a']['b'] 来访问.但是添加一个新的 "k

    Python里面的list.tuple默认都是一维的. 创建二维数组或者多维数组也是比较简单. 可以这样: list1 = [1,2,] list1.append([3,4,]) 可以这样: list2 = [1,2,[3,4,],] 还可以这样: list3 = [1,2] list3.insert(2, [3,4]) 比较特殊的情况是: list0 = [] list0.append([]) 然后想给二维数组list0的第一个元素赋值.直接写list0[0][0]是会被编译器报错的. 那怎么

    展开全文
  • 判断一个数组是否有序 编写一个模板函数 is_sorted, 当且仅当a[0:n-1]有序时, 返回值是true。 #include <iostream> using namespace std; template <class T> bool is_sorted(T* a, int n) { int ...

    判断一个数组是否有序

    编写一个模板函数 is_sorted,
    当且仅当a[0:n-1]有序时, 返回值是true。

    #include <iostream>
    using namespace std;
    
    template <class T>
    bool is_sorted(T* a, int n) {
      int toLow = 0;
      int toHigh = 0;
      int i = 0;
      for (i = 0; i < n; i++) {
        if (a[i] > a[i+1]) {
          toLow ++;
        } else if (a[i] < a[i+1]) {
          toHigh ++;
        }
      }
      
      if ((toLow == i) || (toHigh == i )) return true;
      
      return false;
    }
    
    int main()
    {
      int arr[] = {1,2, 3, 4, 5, 6, 7, 8, 9};
      bool ret = is_sorted(arr, 9);
      cout << "the arr is sored : " << (ret ? "true" : "flase") << endl;
        
      return 0;
    }
    

    执行结果:

    the arr is sored : true
    

    2 当定义:

    int arr2[] = {1,2, 3, 4, 11, 6, 7, 8, 9};
    

    执行结果:

    the arr is sored : flase
    

    编写一个模板函数mismatch, 返回值是使 a[i] 不等于 b[i] 成立的最小索引i,
    0 <= i < n;

    template <class T>
    int mismatch(T* a, T* b, int n)
    {// Return smallest i such that a[i] != b[i].
     // Return n if no such i.
       for (int i = 0; i < n; i++) {
          if (a[i] != b[i]) {
             return i;
          }
       }
       // no mismatch
       return n;
    }
    
    展开全文
  • 主要介绍了php判断一个数组是否有序的方法,涉及php操作数组遍历的相关技巧,非常具有实用价值,需要的朋友可以参考下
  • 升序:每次比较数组中的两个数的时候,最大的数一定是前一个 降序: 每次比较数组中的两个数的时候,最小的数一定是前一个 Flag1和flag2都是假的时候,返回flase,否则,返回flase 代码 public static boolean is...
  • 本文实例讲述了php判断一个数组是否有序的方法。。具体分析如下:这段代码的时间复杂度为O(n)function JudegSortArray($array) {if ($array [0] > $array [1]) {$flag = 1;} else {$flag = 0;}$temp = $flag;$...
  • 判断一个数组是否有序数组 #include<stdio.h> #include<stdlib.h> #include<string.h> #include<assert.h> bool Monoton(int* br, int n) { assert(br != nullptr && n > 1)...
  • STL/Boost里面有没有什么函数能判断一个数组是否有序的? 如果有,是升序的还是降序的能给出吗?
  • 这里只是判断数组是否有序,并没有判断正序还是倒序。正序、倒序以及所有数字相等都视为有序,特殊情况比如「1,1,2,2」这类也视为有序。 思路就是比较数组中相邻的两数字,并统计大于,等于和小于的数量,通过...
  • 具体代码如下: public class Test1_9 { public static void main(String[] args) { int[] arr={1,6,4,5,3,7,2};... } } if(i==arr.length-1) System.out.println("是有序数组"); } } 运行结果示例:
  • function JudegSortArray($array) { if ($array [0] > $array [1]) { $flag = 1; } else { $flag = 0;... 开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明判断一个php数组是否有序的!
  • 遍历数组,如果存在 ... array[i+1] 则该数组不是有序的,否则这个数组是升序 public class TestDemo3 { public static boolean isSort(int[] array) { for (int i = 0; i < array.length - 1; i++) { if...
  • 判断数组是否有序

    2021-09-09 11:06:16
    判断数组是否有序 按照元素大小判断 /** * 判断数组是否有序 按照元素大小判断 * @param arr */ public static boolean isSorted(int[] arr) { int i; boolean flag = false; for (i = 0; i < arr.length-...
  • 2. 给定一组整数, 已知其每两个数都互不相同,判断这些数字是否能排成一个有序数组? 例:li = [1,3,4,2] 是有续的 可以排序为li =[1,2,3,4]  li = [2,4,6,8] 是无续的 可以排序为li =[1,2,3,4]  (不允许...
  • JAVA判断数组是否有序

    2020-12-14 15:45:20
    判断数组是否有序1.问题2.分析3.代码实现 1.问题 给定一个数组,判断其是否有序,输出有序或无序; 2.分析 与数组排序类似,将数组从前往后进行比较,如果数组大下标中的元素比小下标中的元素小,则无序, 3.代码...
  • //给定一个数组, 再给定一个元素, 找出该元素在数组中的位置.(顺序查找) public class Test6_find { public static void main(String[] args){ int[] arr={1,2,3,4,5,8}; System.out.print(find(arr,8)); } public ...
  • 判断数组是否有序排列的 说明,如果0和1的数据一样的话,暂时没有加入判断 public class Test { public static void main(String[] args) { // 定义一个变量,来标记结果 boolean is_sorted = true; // 定义...
  • package shujujiegou;...//判断数组是否有序; public class digui1 { public static void main(String[] args) { int[] arr1 = {1, 2, 3, 4, 50}; int[] arr2; arr2 = new int[]{12, 3, 5, 5}...
  • 判断一个数组是否有重复元素

    千次阅读 2018-06-25 20:29:52
    数组长度为n,数的范围{0,n-1};数组元素随机排放,可能有重复值,怎样判断是否有重复元素?下面说明一下思路,这问题各种办法都可以解决,但是算法的复杂度和性能上却各不相同,最笨的办法就是逐个比较。 ...
  • 2013-12-17 14:59:02 ... 如何判断php的数组是否有序呢?这里分享一例php代码,实现了一个复杂度为N的算法,用来检测php数组是否有序。有需要的朋友参考下。...php如何判断数组有序 这里实现了一个复杂
  • php判断数组是否有序

    千次阅读 2012-09-29 14:53:38
    今天就是国庆长假的最后一天,无心搞业务代码,看到群里讨论php如何判断数组有序,我就给实现了一个复杂度为N的算法,贴出代码供大家学习 function JudegSortArray($array) { if ($array [0] > $array [1]) { ...
  • 判断数组是否一个有序递增序列;只要遍历数组时判断array[i]>arr[i+1] 2.代码: public static boolean induge(int[]arr) { for(int i=0;i<arr.length-1;i++) {//之所以是arr.length是为了避免越界 if ...
  • //用两种方式,实现需求:判断一个int[]数组是否一个升序的数组 //提示:循环、递归 public static void main(String[] args) { //创建一个数组数组的数可以任意更改 int []array=new int[]{1,2,6,5,4}; ...
  • 但是后来在学习其他算法的时候,发现其中的判断数组是否有序的方法中是有BUG的,因为它只能判断数组在顺序的情况下是否有序,而无法判断数组在倒序的情况下是否有序,于是我在之前的方法上进行了方法的增强和修改。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 150,297
精华内容 60,118
关键字:

判断一个数组是否有序