找出与原始数据中没有的数据的算法

数据|算法

 
用C# 呵NUnit 做开发呵测试工具

using System;
using System.Collections;
using NUnit.Framework;

namespace cn.lovetyping.UnitTest
{
 /// <summary>
 /// Sort 的摘要说明。
 /// </summary>
 ///
 [TestFixture]
 public class Sort
 {
  /// <summary>
  /// the orignal data which is used to compare with the new
  ///  data.If there is some data exist in the newData but not in orignal data.
  ///  add it to the result.
  /// </summary>
  /// Input:
  /// <param name="orignal"></param>
  /// <param name="newData"></param>
  /// Output
  /// <returns>arrayList</returns>
  public ArrayList sortData(string[] orignal,string[] newData)
  {
   ArrayList result = new ArrayList();

   int oIndex=0,nIndex=0;
   //according to the condition
            while(oIndex<orignal.Length && nIndex<newData.Length)
            {
             if(newData[nIndex].CompareTo(orignal[oIndex]) <0)
             {
     result.Add(newData[nIndex]);
     nIndex++;
             }
    else if(newData[nIndex].CompareTo(orignal[oIndex]) ==0)
    {
     oIndex++;nIndex++;
    }
    else if(newData[nIndex].CompareTo(orignal[oIndex]) > 0)
    {
     oIndex++;
     continue;
    }
            }
   //if the
   if(nIndex == newData.Length || oIndex< orignal.Length)
   {
    return result;
   }
   else if( nIndex < newData.Length)
   {
    
    while(nIndex< newData.Length)
    {
     result.Add(newData[nIndex++]);
    }
   }
   return result;
  }

  [Test]
  public void testSort()
  {
   string[] code1 = new string[]{"0","4","6","9"};
   string[] code2 = new string[]{"1","3","6","7","9","12"};

   ArrayList result = this.sortData(code1,code2);
   Assert.IsTrue(result.Count == 4);
   for(int i=0;i<result.Count;i++)
   {
    Console.WriteLine(result[i]);
   }

   Console.WriteLine("---------------Another data------------");
   code1 = new string[]{"0","4","6","9"};
   code2 = new string[]{"1","3","6"};
   result = this.sortData(code1,code2);
   Assert.IsTrue(result.Count == 2);
   for(int i=0;i<result.Count;i++)
   {
    Console.WriteLine(result[i]);
   }

   Console.WriteLine("---------------Another data------------");
   code1 = new string[]{"0","4","6","9"};
   code2 = new string[]{"1","3","7"};
   result = this.sortData(code1,code2);
   Assert.IsTrue(result.Count == 3);
   for(int i=0;i<result.Count;i++)
   {
    Console.WriteLine(result[i]);
   }

   Console.WriteLine("---------------Another data------------");
   code1 = new string[]{"0","11","13","3","3","9"};
   code2 = new string[]{"1","11","15","16","19","3","7"};
   result = this.sortData(code1,code2);
   Assert.IsTrue(result.Count == 5);
   for(int i=0;i<result.Count;i++)
   {
    Console.WriteLine(result[i]);
   }
  }
 }
}

时间: 2024-12-05 10:14:24

找出与原始数据中没有的数据的算法的相关文章

找出两数组中不同的数据,并查看他们在以前数组中的索引值

问题描述 找出两数组中不同的数据,并查看他们在以前数组中的索引值 var aa = [1,21,21,21,28]; var bb = [3,4,27,39,21]; var cc = []; var tmp = aa.concat(bb); var o = {}; for (var i = 0; i < tmp.length; i ++){ (tmp[i] in o) ? o[tmp[i]] ++ : o[tmp[i]] = 1; } for (x in o){ if (o[x] == 1){

数组 算法-找出两数组中不同的数据,并查看他们在以前数组中的索引值

问题描述 找出两数组中不同的数据,并查看他们在以前数组中的索引值 var aa = [1,21,21,21,28]; var bb = [3,4,27,39,21]; var cc = []; var tmp = aa.concat(bb); var o = {}; for (var i = 0; i < tmp.length; i ++){ (tmp[i] in o) ? o[tmp[i]] ++ : o[tmp[i]] = 1; } for (x in o){ if (o[x] == 1){

找出给定字符串中出现最多的字符和次数

  "给定一个字符串,找出这个字符串中出现最多的字符和次数",笔试碰到的一个问题,还是比较简单的,贴出来与大家分享. public class CharCount { public static void Charcount(String string) { if (string == null) return; int[] count = new int[string.length()]; for (int i = 0; i < count.length; i++) { //

教你用有效性圈出Excel表格中的指定数据

教你用有效性圈出Excel表格中的指定数据: 考试后老师可能会想把Excel表格中高分用红圈突出显示出来,公司统计时也许也想把特别的数据突出显示出来.这样的要求用Excel的数据有效性就能够轻松完成.下面我以成绩表为例讲解一下如何实现这一要求.(注:本例要求把语文成绩在120分以上的用红圈突出显示.) 屏显操作步骤: 第一步:打开成绩表→选择语文成绩→单击菜单栏上的"数据"按钮→选择"有效性". 第二步:在弹出的"数据有效性"对话框中,在&quo

求解答-试编写一个算法,找出一个循环链表中的最小值。我是新手,编了一个程序,不知错在哪

问题描述 试编写一个算法,找出一个循环链表中的最小值.我是新手,编了一个程序,不知错在哪 #includeusing namespace std; class LinkNode{ int data; LinkNode *link; LinkNode(int d=0LinkNode *l=0){data=d;link=l;}}; class List{private: LinkNode *first; int n;public: List() { first=new LinkNode; first

如何找出Linux系统中所有的*.cpp、*.h文件

如何找出Linux系统中所有的*.cpp.*.h文件? 用find命令就可以了.不过如果从根目录查找消耗资源较高,使用下面的命令就可以: find / -http://www.aliyun.com/zixun/aggregation/11696.html">name "*.cpp" -o -name "*.h" 示例: [root@localhost /]# find / -name "*.cpp" -o -name "

SQL语句练习实例之四 找出促销活动中销售额最高的职员_MsSql

复制代码 代码如下: ---找出促销活动中销售额最高的职员 ---你刚在一家服装销售公司中找到了一份工作,此时经理要求你根据数据库中的两张表得到促销活动销售额最高的销售员 ---1.一张是促销活动表 ---2.一张是销售客列表 create table Promotions ( activity nvarchar(30), sdate datetime, edate datetime ) insert Promotions select '五一促销活动','2011-5-1','2011-5-7

linux-Linux中怎么用grep找出一个文件中空白行的行数字=

问题描述 Linux中怎么用grep找出一个文件中空白行的行数字= 不知道为什么这样写# grep '^&' /etc/profile | wc -l找不出结果, 请问这个应该怎么写才是真确的? 解决方案 grep -E '^$' -n /etc/profile 解决方案二: 加上正则的参数,试试下面的命令 grep -e '^$' -n /etc/profile

List对象中存有整型数组,如何找出这些数组中对应位置上的最大值

问题描述 List对象中有几个长度相同的整型数组,如果再在List中循环找出这些数组中对应位置上的最大value,简单例子说明:假如有三个数组如下:int[]a1=newint[]{3,10,5,0};int[]a2=newint[]{1,9,7,6};int[]a3=newint[]{5,3,5,8};比较后得到新数组对象ax=newint[]{5,9,10,8};请问如何在遍历整个List情形下中实现呢?我的平台是VS2005,不能用LINQ实现.thanks 解决方案 解决方案二:你说你这