删除重复数据的算法

  在工作中碰到这么一个问题:给定一个已经排序的数组(升序),删除数组中重复的数据,但是只能使用一个数组,这个数组的大小可以变化.

  例子:  数组:[1,1,2,2,3,3,4,5,7,10]

  输出::[1,2,3,4,5,7,10]

  实现(1):

  var arr =new Array(1,1,2,2,3,3,4,5,7,10);

  var len = arr.length;

  for(var i=len-1;i>=1;i--)

  {

  if(arr[i-1] == arr[i])

  {

  arr.splice(i,1);

  }

  }

  alert(arr);

  实现(2):

  var arr =new Array(1,1,2,2,3,3,4,5,7,10);var len = arr.length;var k=0;for(var i=1;i<len;i++){        if(arr[k] != arr[i])        {          arr[k+1]=arr[i];           k++;        }    }alert(arr);

  但是发现其性能并不是最好的,不知道您是否有更好的算法.(实现语言可以是JavaScript,C#,VB.net,.....)