查重排序数组

news/2024/7/19 15:31:58 标签: 排序算法, 插入排序, js

查重排序数组&插入排序


let arr = [0,3,0,3,0,3];


//插入排序
for(var i = 0;i<arr.length-1;i++){
    for(var j = i+1;j>0 && arr[j] < arr[j-1];j--){
        swap(arr,j,j-1);
    }
}

function swap(arr,a,b){
    var t = arr[a];
    arr[a] = arr[b];
    arr[b] = t;
}


//排序数组查重
/**
 * 
 * @param {Array} arr 要查重的排序数组
 */
function test(arr){
    var n = arr.length
    if(n == 0){
        return 0;
    }
    var index = 1;
    for(var i = 1;i<n;i++){
        if(arr[i] == arr[i-1]){
            continue;
        }
        arr[index] = arr[i];
        index++;
    }
    return index;
}
/**
 * 
 * @param {Array} arr 原数组
 * @param {Number} n 复制的长度
 */
function arrayCopy(arr,n){
    var newArr = new Array(n);
    for(var i = 0;i<n;i++){
        newArr[i] = arr[i];
    }
    return newArr;
}
var n = test(arr);
console.log(arrayCopy(arr,n));
console.log(arr);


http://www.niftyadmin.cn/n/1847006.html

相关文章

POJ - 3608 Bridge Across Islands(凸包+旋转卡壳模板 求两凸包点之间的最近距离)

链接&#xff1a;https://cn.vjudge.net/problem/POJ-3608 题意&#xff1a;求两凸包点之间的最近距离&#xff0c;注意这个意思是说&#xff0c;如果求点到线段的距离&#xff0c;那么要保证垂足落到线段上。 思路&#xff1a;枚举一个凸包的边&#xff0c;去找另一凸包中的…

Dom操作之tab栏模板

tab栏模板 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head> &…

POJ - 3335 Rotating Scoreboard (半平面交模板)

链接&#xff1a;https://cn.vjudge.net/problem/POJ-3335 题意&#xff1a;判断直线的半平面交是否有核。&#xff08;也是判断一个不规则多边形内部是否存在一个区域&#xff0c;可以看到多边形的全貌。&#xff09; 思路&#xff1a;半平面交板子题&#xff0c;这里存个模…

Promise的使用与实现源码

Promise的使用与实现源码 使用01 const Promise require(./P01.js);const p new Promise((resolve, reject) > {//ajax,定时器console.log(123);// throw new Error(Error);resolve(成功了);// reject(失败了); });p.then((data) > {console.log(data, success01); }…

POJ - 2451 Uyuw's Concert(半平面交求核面积)

链接&#xff1a;https://cn.vjudge.net/problem/POJ-2451 题意&#xff1a;半平面交求核面积。 思路&#xff1a;板子题&#xff0c;也是存板子。两个板子&#xff0c;思想一样&#xff0c;实现略微不同。 1. #include <cstdio> #include <iostream> #include…

DOM(Document Object Model)学习路线

21数组.html /* 早期的版本&#xff1a;1// push()功能&#xff1a;在数组末尾添加一个或多个元素参数&#xff1a;添加的元素序列返回值&#xff1a;返回的是原数组增加元素后的长度特点 会改变原数组2// unshift() 用法基本与push()一样&#xff0c;只是在数组前面添加元素…

凸包/旋转卡壳/半平面交学习总结

1.凸包 参考博客&#xff1a;https://blog.csdn.net/qq_34374664/article/details/70149223 定义&#xff1a;假设平面上有若干个点&#xff0c;过某些点作一个多边形&#xff0c;使这个多边形能把所有点都“包”起来。当这个多边形是凸多边形的时候&#xff0c;我们就叫它“凸…

HDU - 5017 Ellipsoid (三分/模拟退火)

链接&#xff1a;https://cn.vjudge.net/problem/HDU-5017 题意&#xff1a;给出一个椭球面&#xff0c;求椭球面上原点最近的距离。 思路&#xff1a;首先&#xff0c;我们只需要考虑椭球的1/8&#xff08;因为它关于原点对称。&#xff09;&#xff0c;然后&#xff0c;这1…