찾다
웹 프론트엔드JS 튜토리얼js Algorithm_javascript 기술의 정렬 및 배열 중복 제거에 대한 자세한 개요

사실, 배열의 정렬 메소드를 사용하여 js에서 배열 정렬을 구현하는 것은 비교적 간단합니다.

1.정렬

간단한 배열 정렬 구현

코드 복사 코드는 다음과 같습니다.

var arr = [] ;
for(var i=0;i arr.push(Math.floor(Math.random()*100))
}
arr .sort(function (a,b){
return a>b?1:-1;
})
alert(arr)

단순히 정렬을 사용할 수는 없습니다. 기본적으로 정렬 방법은 우리가 생각하는 숫자 크기가 아닌 ASCII 알파벳순으로 정렬됩니다. sort() 메서드는 메서드를 매개 변수로 받아들일 수 있습니다. 이 메서드에는 두 개의 매개 변수가 있습니다. 각 정렬 비교에서 두 배열 항목을 나타냅니다. sort() 정렬 시 두 배열 항목이 비교될 때마다 이 매개변수가 실행되며, 비교된 두 배열은

항목은 이 함수에 인수로 전달됩니다. 함수가 값 1을 반환하면 두 배열 항목의 순서가 바뀌고, 그렇지 않으면 바뀌지 않습니다.

알고리즘의 배열 정렬


코드 복사 코드는 다음과 같습니다.
var arr = [] ;
for(var i=0;i arr.push(Math.floor(Math.random()*100))
}
// 없음 정렬된 arr 배열 생성
function sort(arr,start,end){
//배열 길이는 1
if(start == end ){
return [arr[start]]
}else if(시작 == 끝-1){
                                                                                 ~                          ​ [end],arr[start]]
          }else{ l = Math.floor((start end)/2); //왼쪽 배열
var arrLeft = sort(arr, start,l);
//오른쪽 배열
var arrRight = sort (arr,l 1,end); /Return result
var result = [];
//왼쪽과 오른쪽 배열을 두 부분으로 나누고 배열의 첫 번째 숫자만 비교합니다. 값이 작으면 결과에 넣고 삭제합니다. 작은 값을 배열에 사용하십시오. 왼쪽 배열 또는 오른쪽 배열이 나타나고 데이터가 없는 경우
//result 배열을 concat을 사용하여 데이터가 있는 배열과 결합하고 결과를 반환합니다
while(arrLeft.length>0 || arrRight.length> ;0 ){
if(arrLeft.length==0){
result = result.concat(arrRight)
break;
}else if(arrRight.length==0){
결과 = result.concat(arrLeft);
break;
if(arrLeft[0]                                                                                                                                          길이-1);//매개변수 배열 , 시작 위치, 끝 위치

document.write(arr '
' arrSort);


설명: 배열 정렬은 주로 배열을 더 이상 수행할 수 없을 때까지 두 개로 분할하는 작업을 포함하며, 결국 유일한 옵션은 배열의 길이가 홀수와 두 개로 나누어지기 때문에 배열을 하나 또는 두 개로 분할하는 것입니다. 분할 최종 배열에 1~2개만 있을 경우 정렬이 시작되고 결과가 반환되며, 이 결과를 하나씩 비교하여 병합합니다. 왜 이 방법이 이렇게 복잡할까 생각하실 수도 있는데, 항상 첫 번째 방법을 사용하면 안 되나요? 사실 당연히 할 수 있지만, 이 세상에는 아직도 성능이라는 단어가 있습니다. 계산된 결과 시간은 차이가 없습니다. 데이터가 수억 또는 수십억이면 여전히 첫 번째 방법을 사용할 자신감이 있습니까? 실제로 js의 알고리즘은 많은 문제를 작은 문제로 나누어서 정복하는 것입니다. 해결하다.

2. 배열에서 중복 제거

중복을 제거하는 쉬운 방법: 먼저 빈 배열을 선언하고 for 루프에 중복 배열을 삽입한 다음 반복 삽입을 건너뜁니다.

코드 복사 코드는 다음과 같습니다.

var arr = []
for(var i=0;i arr.push(parseInt; (Math.random()*10))
}
Array.prototype.indexOf = function(n){
for(var i=0;i If(this[i] == n){
return i;
}
}
return -1
}
function deleteDup(arr){
var 결과 = [];
for(var i=0;i if(result.indexOf(arr[i]) == -1){

result.push(arr[i]);
      }                                   />' arr2)


중복 제거 알고리즘 배열



복사 code
코드는 다음과 같습니다.var arr = [] for(var i=0;i arr.push(parseInt(Math.random()*10));
}
Array.prototype.indexOf = function(n){
for(var i=0;i if(this[i] == n){
           return i;                                          🎜>                     ~                                                                     🎜> if(arr[s]==arr[e]){
return [arr[s ]]
}else{
return [arr[s],arr[e]];
                                                                   s,l );
//오른쪽
var arrR = RemoveDup(arr,l 1,e);
//왼쪽부터 결과 복사
var result = arrL
//결과에 고유한 데이터를 삽입하는 루프
for(var i=0;i if(result.indexOf(arrR[i])== -1 ) result.push(arrR[i])
}
return result; 🎜>}
var arrDup = RemoveDup(arr, 0, arr.length-1)
document .write(arr '
' arrDup);


설명: 반복된 배열을 마지막에 하나의 데이터 또는 두 개의 배열만 남을 때까지 잘라내고, 왼쪽의 데이터를 결과에 넣고, 오른쪽의 반복 삽입을 반복하지 않고 건너뜁니다. 루프가 완료될 때까지 결과가 반환될 수 있습니다
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
使用Python实现XML数据的筛选和排序使用Python实现XML数据的筛选和排序Aug 07, 2023 pm 04:17 PM

使用Python实现XML数据的筛选和排序引言:XML是一种常用的数据交换格式,它以标签和属性的形式存储数据。在处理XML数据时,我们经常需要对数据进行筛选和排序。Python提供了许多有用的工具和库来处理XML数据,本文将介绍如何使用Python实现XML数据的筛选和排序。读取XML文件在开始之前,我们需要先读取XML文件。Python有许多XML处理库,

C++程序:按字母顺序重新排列单词的位置C++程序:按字母顺序重新排列单词的位置Sep 01, 2023 pm 11:37 PM

在这个问题中,一个字符串被作为输入,我们必须按字典顺序对字符串中出现的单词进行排序。为此,我们为字符串中的每个单词(之间用空格区分)分配一个从1开始的索引,并以排序索引的形式获得输出。String={“Hello”,“World”}“Hello”=1“World”=2由于输入字符串中的单词已按字典顺序排列,因此输出将打印为“12”。让我们看看一些输入/结果场景-假设输入字符串中的所有单词都相同,让我们看看结果-Input:{“hello”,“hello”,“hello”}Result:3获得的结

如何优化Java集合排序性能如何优化Java集合排序性能Jun 30, 2023 am 10:43 AM

Java是一种功能强大的编程语言,广泛应用于各类软件开发中。在Java开发中,经常会涉及到对集合进行排序的场景。然而,如果不对集合排序进行性能优化,可能会导致程序的执行效率下降。本文将探讨如何优化Java集合排序的性能。一、选择合适的集合类在Java中,有多种集合类可以用来进行排序,如ArrayList、LinkedList、TreeSet等。不同的集合类在

如何利用vue和Element-plus实现数据的分组和排序如何利用vue和Element-plus实现数据的分组和排序Jul 18, 2023 am 10:39 AM

如何利用Vue和ElementPlus实现数据的分组和排序Vue是一种流行的JavaScript框架,它可以帮助我们构建前端应用程序。ElementPlus是基于Vue的桌面端组件库,它提供了丰富的UI组件,使我们能够轻松地构建出漂亮且用户友好的界面。在本文中,我们将探讨如何利用Vue和ElementPlus来实现数据的分组和排序。首先,我们需要准备一

Java开发中如何优化集合排序去重性能Java开发中如何优化集合排序去重性能Jul 02, 2023 am 11:25 AM

Java开发中,集合排序和去重是常见的需求。然而,在处理大数据集合时,性能往往会成为一个问题。本文将介绍一些优化技巧,帮助提升集合排序和去重的性能。一、使用合适的数据结构在Java中,最常用的数据结构是ArrayList和HashSet。ArrayList适用于需要保持元素顺序的情况,而HashSet则适用于需要去重的情况。在排序和去重的场景中,我们可以使用

Java实现的常见排序算法详解Java实现的常见排序算法详解Jun 18, 2023 am 10:48 AM

排序算法是计算机科学中的一个重要概念,是许多应用程序的核心部分。在日常生活和工作中,我们经常需要对数据进行排序,例如排列名单、对数值进行排序等。Java作为一种广泛使用的编程语言,提供了许多内置的排序算法。本文将详细介绍Java中实现的常见排序算法。1.冒泡排序(BubbleSort)冒泡排序是最简单但最慢的排序算法之一。它遍历整个数组,比较相邻的元素并一

如何在Java 14中使用Records类来实现自动比较和排序如何在Java 14中使用Records类来实现自动比较和排序Jul 30, 2023 pm 01:06 PM

如何在Java14中使用Records类来实现自动比较和排序Java14引入了一种新的类称为Records类,它为我们提供了一种简洁而强大的方式来定义不可变的数据类。Records类具有自动为每个字段生成getter方法、equals()方法和hashCode()方法的特性,这使得比较和排序非常方便。在这篇文章中,我们将通过示例代码来演示如何在Java

PHP usort() 函数使用指南:排序数组PHP usort() 函数使用指南:排序数组Jun 27, 2023 pm 02:27 PM

PHPusort()函数使用指南:排序数组在PHP编程中,我们经常需要对数组进行排序。PHP提供了很多函数用于数组的排序,其中usort()函数可以灵活的对数组进行自定义排序。本文将介绍usort()函数的使用方法和注意事项,并通过实例演示如何使用usort()函数对数组进行排序。一、usort()函数简介PHPusort()函数

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구