简单的排序算法--最有效率
第一次来这个板块
最近在看数据结构算法(严蔚敏的)
请达人
指点
这个算法
两个线性表
{a,b,c,d}--a
{b,c,d,e,aa}--b
要求:要求把b表的元素加到a 不能与a的 重复
请大人 写最有效率的 算法
以及写出他的 时间复杂性
语言c# java js c
这是我写的两个简单的
----------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
DateTime dt = DateTime.Now;
ArrayList a=new ArrayList(){"a","b","c","d","gg","cc","dsd",};
ArrayList b = new ArrayList { "d", "a", "f", "g", "c", "a", "b", "c", "d", "gg", "cc", "dsd", "a", "b", "c", "d", "gg", "cc", "dsd", "a", "b", "c", "d", "gg", "cc", "dsd", "a", "b", "c", "d", "gg", "cc", "dsd", "a", "b", "c", "d", "gg", "cc", "dsd", "a", "b", "c", "d", "gg", "cc", "dsd", "a", "b", "c", "d", "gg", "cc", "dsd", "a", "b", "c", "d", "gg", "cc", "dsd", "a", "b", "c", "d", "gg", "cc", "dsd", "a", "b", "c", "d", "gg", "cc", "dsd", "a", "b", "c", "d", "gg", "cc", "dsd", "a", "b", "c", "d", "gg", "cc", "dsd", "a", "b", "c", "d", "gg", "cc", "dsd", "a", "b", "c", "d", "gg", "cc", "dsd"};
ArrayList c=dos(a,b);
for (int i = 0; i < c.Count; i++)
{
Console.WriteLine(c[i]);
}
DateTime dt1=DateTime.Now;
TimeSpan ts;
ts = dt1 - dt;
Console.WriteLine(ts.ToString());
}
public static ArrayList dos(ArrayList a, ArrayList b)
{
bool has=false;
int y=0;
int al = a.Count;
int bl = b.Count;
for (int i = 0; i < al; i++)
{
for (int j = 0; j < bl; j++)
{
if (b[j] != a[i])
{
has = true;
y = i;
continue;
}
else
{
has = false;
break;
}
}
if (has)
{
b.Add(a[y]);
}
}
return b;
}
}
}
----------------------------------------------------------
---------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
DateTime dt = DateTime.Now;
ArrayList a = new ArrayList() { "a", "b", "c", "d", "gg", "cc", "dsd", };
ArrayList b = new ArrayList { "d", "a", "f", "g", "c", "a", "b", "c", "d", "gg", "cc", "dsd", "a", "b", "c", "d", "gg", "cc", "dsd", "a", "b", "c", "d", "gg", "cc", "dsd", "a", "b", "c", "d", "gg", "cc", "dsd", "a", "b", "c", "d", "gg", "cc", "dsd", "a", "b", "c", "d", "gg", "cc", "dsd", "a", "b", "c", "d", "gg", "cc", "dsd", "a", "b", "c", "d", "gg", "cc", "dsd", "a", "b", "c", "d", "gg", "cc", "dsd", "a", "b", "c", "d", "gg", "cc", "dsd", "a", "b", "c", "d", "gg", "cc", "dsd", "a", "b", "c", "d", "gg", "cc", "dsd", "a", "b", "c", "d", "gg", "cc", "dsd", "a", "b", "c", "d", "gg", "cc", "dsd" };
ArrayList c = dos(a, b);
for (int i = 0; i < c.Count; i++)
{
Console.WriteLine(c[i]);
}
DateTime dt1 = DateTime.Now;
TimeSpan ts;
ts = dt1 - dt;
Console.WriteLine(ts.ToString());
}
public static ArrayList dos(ArrayList a, ArrayList b)
{
string bstr = "";
for (int i = 0; i < b.Count; i++)
{
bstr += b[i].ToString() + ",";
}
for (int i = 0; i < a.Count; i++)
{
int asa = bstr.IndexOf(a[i].ToString());
if (asa == -1)
{
b.Add(a[i]);
}
else
{
continue;
}
}
return b;
}
}
}