検索
ホームページウェブフロントエンドjsチュートリアルjs アルゴリズムの並べ替えと配列の重複排除の詳細な概要_javascript スキル

実際、配列のsortメソッドを使用して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)

単純に並べ替えを使用することはできませんデフォルトでは、sort メソッドは、私たちが考えているような数値サイズではなく、ASCII アルファベット順にソートされます。 sort() メソッドはメソッドをパラメータとして受け入れることができます。このメソッドには 2 つのパラメータがあります。各並べ替え比較における 2 つの配列項目を表します。 sort() がソートするとき、このパラメーターは 2 つの配列項目が比較されるたびに実行され、2 つの比較された配列

項目は引数としてこの関数に渡されます。関数が値 1 を返した場合、2 つの配列項目の順序は交換されます。それ以外の場合は交換されません。

アルゴリズムの配列ソート


コードをコピー コードは次のとおりです:
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(start == end-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 = [];
// 左右の配列を 2 つの部分に分割し、配列の最初の数値のみを比較し、値が小さい場合は結果に入れて削除します小さい値を配列で使用します。左の配列または右の配列が表示され、データが存在しない場合
//結果の配列は concat を使用してデータのある配列と結合され、結果が返されます
while(arrLeft.length>0 || arrRight.length> ;0 ){
if(arrLeft.length==0){
result = result.concat(arrRight);
ブレーク;
}else if(arrRight.length==0){
result = result.concat(arrLeft);

if(arrLeft[0] length-1);//パラメータ配列、開始位置、終了位置

document.write(arr '
' arrSort);


説明: 配列のソートでは主に、配列を 2 つに分割できなくなるまで分割します。配列の長さが奇数と 2 に分割されるため、最終的に唯一の選択肢は配列を 1 つまたは 2 つに分割することです。偶数の分割 最終配列に 1 つまたは 2 つしかない場合、ソートが開始され、結果が返され、これらの結果が 1 つずつ比較されてマージされます。なぜこの方法がこんなに複雑なのかと思われるかもしれませんが、実際にはもちろん使用できますが、データが数十、数百、すべての人の場合でもパフォーマンスという言葉が使われます。計算された結果 データが数億または数十億もの巨大な場合、まだ最初の方法を使用する自信がありますか? 実際、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;
関数 RemoveDup(arr){
var result = [];
for(var i=0;i if(result.indexOf(arr[i]) == -1){

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


重複を削除するアルゴリズム配列



コードをコピー

Array.prototype.indexOf = function(n){
for(var i=0;i< ; this.length; i){
if(this [i] == n){
return i; [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);


説明: 最後に 1 つのデータまたは 2 つの配列だけが残るまで繰り返し配列を切り取り、左側のデータを結果に入れ、右側の繰り返し挿入をスキップします。ループが完了するまで、結果を返すことができます
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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ヘンタイを無料で生成します。

ホットツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール