精华内容
下载资源
问答
  • 直接上代码: public class Test {  public static void main(String args[])  {  //原有序数组,这里约定数组是升序排列  int[] intArray = new int[]{1,2,3,5,6,7,8};    int toInsert = 4;//待
    直接上代码:
    public class Test
    {
        public static void main(String args[])
        {
            //原有序数组,这里约定数组是升序排列
            int[] intArray = new int[]{1,2,3,5,6,7,8};
            
            int toInsert = 4;//待插入数据
            
            int subscript = 0;//下标
            
            //确定下标位置
            if(toInsert < intArray[0])
            {
                subscript = 0;
            }
            else if(toInsert > intArray[intArray.length - 1])
            {
                subscript = intArray.length;
            }
            else
            {
                //循环,确定插入下标位置
                for(int i=0; i<intArray.length; i++)
                {
                    if(toInsert == intArray[i])
                    {
                        subscript = i;
                    }
                    if(toInsert > intArray[i] && toInsert < intArray[i+1])
                    {
                        subscript = i +1;
                    }
                }
            }
            
            //定义新数组,将toInsert数据插入数组中
            int[] newArray = new int[intArray.length + 1];
            for(int i=0; i<intArray.length+1; i++)
            {
                if(i < subscript)
                {
                    newArray[i] = intArray[i];
                }
                if(i == subscript)
                {
                    newArray[i] = toInsert;
                }
                if(i > subscript)
                {
                    newArray[i] = intArray[i-1];
                }
            }
            
            //打印插入数据后的新数组
            for(int i : newArray)
            {
                System.out.println(i);
            }
            System.out.println("插入下标为:" + subscript);
        }
    }
    
    展开全文
  • 如题,求指导!
    如题,求指导!
    展开全文
  • 怎样把两个有序数组合并成有序数组呢  逻辑步骤:  1.假设两数组为A和B  2.A和B都是从小到大的顺序进行排列  **  1.我们可以直接比较两数组的首元素,哪个小就把这小元素放入可变数组。 ...

    //联系人:石虎  QQ: 1224614774 昵称:嗡嘛呢叭咪哄

    面试题: 怎样把两个有序数组合并成有序数组呢

     逻辑步骤:

     1.假设两个数组为AB

     2.AB都是从小到大的顺序进行排列

     **

     1.我们可以直接比较两个数组的首元素,哪个小就把这个小元素放入可变数组。

     2.把小元素所在的数组中的这个元素删除。

     3.继续比较两个数组中的首元素,直到有一个数组为空。那么就停止进行比较。把另外一个不空的数组元素全部放入可变数组中即可。

    实现代码:

     - (void)viewDidLoad {

     [super viewDidLoad];

     

    //实例化数组 A

     NSMutableArray *arrA = [NSMutableArray arrayWithArray:@[@1,@3,@5,@7,@9,@11]];

     //实例化数组 B

     NSMutableArray *arrB = [NSMutableArray arrayWithArray:@[@8,@15,@17,@20,@22,@35]];

    //新数组

     NSMutableArray *marr = [NSMutableArray array];

    //开始遍历

     for(int i = 0; i< 100; i++)

     {

     

     if (arrA[0] < arrB[0])

     {

     [marr addObject:arrA[0]];

     [arrA removeObject:arrA[0]];

     }else

     {

     [marr addObject:arrB[0]];

     [arrB removeObject:arrB[0]];

     }

     

     NSLog(@"已经循环了--->>%d",i);

     if (arrA.count == 0)

     {

     [marr addObjectsFromArray:arrB];

     NSLog(@"新数组--->>%@",marr);

     return;

     }

     if (arrB.count == 0)

     {

     [marr addObjectsFromArray:arrA];

     NSLog(@"新数组---->> %@",marr);

     return;

     }

     }

     }



    展开全文
  • 程序分析:这里做的是升序。 C++代码: #include<iostream> using namespace std; int main() { int n1, n2, n, len1, len2, len; int array1[100], array2[100], array[200]; cin >... for

    程序分析:这里做的是升序。

    C++代码:

    #include<iostream>
    using namespace std;
    
    int main() {
    	int n1, n2, n, len1, len2, len;
    	int array1[100], array2[100], array[200];
    	cin >> n1 >> n2;
    
    	for (int i = 0; i<n1; i++) {
    		cin >> array1[i];
    	}
    	for (int i = 0; i<n2; i++) {
    		cin >> array2[i];
    	}
    
    	n = n1 + n2;
    	len1 = n1 - 1;
    	len2 = n2 - 1;
    	len = n - 1;
    
    	while (len1 >= 0 && len2 >= 0) {
    		if (array1[len1]>array2[len2]) {
    			array[len] = array1[len1];
    			len--;
    			len1--;
    		}
    		else {
    			array[len] = array2[len2];
    			len--;
    			len2--;
    		}
    	}
    
    	while (len1 >= 0) {
    		array[len] = array1[len1];
    		len--;
    		len1--;
    	}
    
    	while (len2 >= 0) {
    		array[len] = array2[len2];
    		len--;
    		len2--;
    	}
    
    	for (int i = 0; i<n; i++) {
    		cout << array[i] << " ";
    	}
    }
    

    C++运行结果:在这里插入图片描述

    展开全文
  • 删除一个有序数组中的重复元素

    千次阅读 2018-07-31 23:08:34
    因为这数组是有序的,所以删除的时候可以这样做。使用最小数字减去1来标记作为被删除掉的元素。然后再把数组中的有效元素移动位置就可以了。使用C语言实现如下: int removeDuplicates(int* nums, int numsSize)...
  • 一个有序数列中插入一个数,用C语言实现链表。 输入 9 2 3 5 8 9 10 18 26 32 6 输出 2 3 5 6 8 9 10 18 26 32 代码 #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; //创建一个...
  • c语言删除有序数组中的一个数

    千次阅读 2014-08-16 14:38:08
    //删除删除 printf("请输入要删除"); scanf("%d",&n); for(i=0;i;i++) { if(a[i]==n) { for(j=i;j;j++) { a[j]=a[j+1]; } t++; i--; } } //输出删除后的结果 for (i=0; i; i++) { ...
  • #include<stdio.h> int main() { int i,x,num=5,flap=0; int a[10]={1,2,4,6,7}; scanf("%d",&x); for(i=0;i<num;i++) { if(a[i]>x){ flap=i; break;...i-...
  • 第一种思路,把两个组合为一个数组然后再排序,问题又回归到冒泡和快排了,没有用到两个数组的有序性。(不好) 第二种思路,循环比较两个有序数组头位元素的大小,并把头元素放到新数组中,从老数组中删掉,直到...
  • /** * 在一个有序数组中添加元素和删除元素,不破坏有序结构 * @author Dreamweaver * */public class ArrayTjSc { public static void main(String[] args) { int [] a = new int[10]; for(int i=1...
  • 1.宏定义数组元素个数为ARRNUM=10 函数原型声明void AscendSorting(int a[]); 函数原型声明int Bisearch(int x,int *a[],int left, int right); 2.设计函数 2.1设计函数void AscendSorting(int a[]) 2.1.1函数功能 ...
  • 设顺序表中数据元素递增有序,试写算法,将x插入到顺序表的适当位置上,以保持该表的有序性 算法:逆序遍历顺序表找合适的插入new_elem的位置,并将其插入 */ #define maxlen 50 typedef struct{ int arr[maxlen...
  • 7-1 两个有序序列的中位 (25 分) 已知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位。...N≤100000),随后每行输入一个序列的信息,即N个非降序排列的整数。数字用空格间隔。 输出格式: 在一行...
  • 行有三个数,分别是长度m、长度n和k,中间空格相连(1,n; 1)。 第二行m个数分别是非减序的序列X。第三行n个数分别是非减序的序列Y。 输出格式 序列X和Y的第k小的。 输入样例 5 6 7 1 8 12 12 21 4 12 ...
  • public static void main(String[] args) { int[] a={23,34,56,7,8,9}; int[] b = new int[a.length]; Scanner scan = new Scanner... System.out.println("请输入一个整数:"); int num = scan.nextInt(...
  • 给定一个有序数组,删除重复内容,使每个元素只出现一次,并返回新的长度。不要为其他数组分配额外的空间,您必须通过在 O(1)额外的内存中就地修改输入数组来实现这一点。例:给定nums = [1,1,2], 你的函数应该...
  • WV.54-删除有序数列中的某

    千次阅读 2015-02-12 12:02:48
    问题及代码: /* ...*All rights reserved....*文件名称:number.cpp *作 者:单昕昕 *完成日期:2015年2月12日 *版 本 号:v1.0 ...*问题描述:删除有序数列中的某...*程序输入:一个数。 *程序输出:删除有序数列中的某
  • 插入数据,有序数组仍然有序 ... 功能:向有序的数组中插入一个数据,但是数据仍然有序 */ #include<stdio.h> #define N 5 void sort(int a[],int num) { int i,j,temp1,temp2; ...
  • 删除一个有序链表的重复元素

    千次阅读 2016-04-05 22:49:30
    给定一个有序链表,删除掉其中重复结点
  • 输入,构建有序链表。 整体思路 用数组保存这组,每次都去找最小值,把最小值构建结点并使用头插法插入到单链表中。 然后将该值删掉(为简便起见,把值弄成MAX)。 这里使用的是类直接插入的排序方法。 代码...
  • 个有序数组合并成有序数组

    千次阅读 2017-02-07 16:53:51
    昨天面试遇到了这样一个问题,怎样把两个有序数组合并成有序数组呢?我傻傻的是这么回答的:创建一个可变数组,把两个数组放入可变数组之后再进行排序。想想考官当时都会觉得搞笑,考官当时心里应该是这么想的,你的...
  • //将两个有序链表并为一个有序链表算法,该程序也可以cFree环境运行。 // c1.h (程序名) #include<string.h> #include<ctype.h> #include<malloc.h> // malloc()等 #include<limits.h> //...
  • 今天无意看到一个面试题,觉的很有意思。 我理解的就是有100w条数据,从中抽走2条,然后问抽走的是哪两个。一开始自己也想了许多,什么二分法了,循环前后相减不等于2的就是删除的数据。不过很快自己就推翻自己了...
  • 多个有序链表合并成一个有序链表的C++递归实现 主体思想: 1.多个有序链表看成是一个二维链表,此二维链表在 y 轴方向是有序的,x轴方向是无序的 2.在x 轴方向(x=0),找出此维度最小的元素(可以输出了), 3....
  • 目的是为了更方便快捷的记忆和回忆算法重点(不用每次都重复看题解),毕竟算法不是做了遍就能完全记住的.所以本文适合已经知道解题思路和方法,想进一步加强理解和记忆的朋友,并不适合第次接触此题的朋友(可以根据...
  • k,则a所在列的所有元素均大于k,搜索位置左移1位,然后删除该列构成新的矩阵;若a&lt;k,则a所在行的所有元素均小于k,搜索位置下移1位,然后删除该行构成新的矩阵;若相等,结束查找;由新构成的矩阵利用上述...
  • } //对一个有序的单链表,删除所有值大于x而不大于y的结点 void deletexy(LNode *head,int x,int y) { LNode *pre=head; LNode *p=head->next; while(p) { if(p->data>x&&p->data) { pre->next=p->next; ...
  • 已知顺序表中的元素按元素值非递减有序排列,编写一个算法,删除顺序表中多余的值相同的元素。 运行截图: 代码: #include<stdio.h> #include<stdlib.h> #define OK 1 #define ERROR -1 #define ...
  • 给你一个整数组 arr,请你删除一个子数组(可以为空),使得 arr中剩下的元素是 非递减 的。 一个子数组指的是原数组中连续的一个子序列。 请你返回满足题目要求的最短子数组的长度。 示例 1: 输入:arr = ...
  • 一个有序(按非递减顺序)的链表中插入一个元素为x的结点,使插入后的链表仍然有序(链表数据域为整型,初始时输入6个元素)。 程序运行示例如下: 输入数组6个元素的值。 12 23 34 45 56 67 此链表各个结点的数据...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 198,744
精华内容 79,497
关键字:

删除一个数使之有序