js演算法和資料結構

2021-09-24 19:14:01 字數 3704 閱讀 8404

//增

arr.push(3); //尾部新增(引數不能是陣列)

arr[arr.length]=4; //尾部新增

arr.unshift(0); //頭部新增

arr.splice(); //在指定位置增加

//刪delete arr[2]; //刪除指定變為undefine

arr.length-=1; //移除尾部元素

arr.pop(); //移除尾部元素

arr.shift(); //移除頭部元素

arr.splice(); //刪除指定幾個元素(或刪+增)

arr.indexof(2,-1); //

//轉化

arr.join();//陣列轉化為字串並指定分隔符(預設為,)

str.split(''); //字串轉化為陣列

//排序(逆序,公升序,降序)

arr.reverse();//將陣列逆序

arr.sort(); //陣列元素為字母及字串公升序排序

arr.sort(function(a,b)); //陣列元素為數字的公升序排序

arr.sort(function(a,b)); //陣列元素為數字的降序排序

arr.sort(function(a,b)); //陣列元素為物件的公升序排序

//合併

arr.concat([[1,2],3])//陣列合併(原陣列未被改變,陣列拉平一次)

//遍歷

arr.foreach(function(x,index,a));

for(v in arr) //獲取鍵名

for(v of arr) //獲取鍵值

//對映

arr.map(function(x));

//過濾

arr.filter(function(x,index));

//拼接(刪除,插入,替換)

arr.splice(1,2) //從index為1開始刪除2個元素並拼接剩下的元素

arr.splice(1,1,'a','b') //刪除》插入》拼接

//判斷

arr.every(function(x))

arr.some(function(x))

//檢索

arr.indexof(1,2); //從索引值為2開始查詢返回第乙個值為1的元素的索引,沒有匹配值則返回-1

arr.lastindexof(1,2) //從索引值為2開始查詢返回最後乙個值為1的元素的索引

//擷取

arr.slice(2,-1);//返回指定首尾陣列片段(原陣列不修改)

//判斷是否為陣列

array.isarray(arr);

arr indexof array;

arr.constructor===array;

1.array.from

將部署了interator介面的資料結構轉化為陣列

//nodelist

let ps=document.queryselectall('p'); //nodelist集合(返回的是類似陣列的物件)

array.from(ps).filter(p => );

//argument

() =>

//有length屬性的物件

array.from() //[undefine,undefine,undefine]

//字串

array.from('hello');

//set

let nameset=new set(['a','b']);

array.from(nameset);

進行陣列迴圈處理

array.from([1,2,3],x=>x*x)
2....用作轉換為陣列的操作

轉化為陣列

() =>

轉化為陣列

[...deocument.queryselectorall('p')]

反轉字串

let arr=s.split(''); //轉為陣列

let arr2=arr.reverse(); //陣列反轉

let str=arr2.join(''); //陣列轉為字串

lat str=s.split('').reverse().join('');

//棧

//佇列

//鍊錶

//集合

類似於陣列,但成員值不重複,es6中set就是類似集合的資料結構

//字典

//雜湊

//樹//圖

n較小:插入排序,選擇排序

n較小且初始狀態基本有序時:插入排序

初始狀態基本有序:插入排序,氣泡排序,快速排序

n較大:堆排序,快速排序,歸併排序

n較大且初始狀態基本有序時:快速排序(效能好)

n較大且穩定:歸併排序

排序演算法

選擇排序

選擇排序:

function selectionsort(arr)

}if(i!==indexmin)

}return arr;

}arr1=[3,2,1,5,4];

selectionsort(arr1);

console.log(arr)

插入排序:和前面的一一對比

}arr1=[2,3,1,4,5]; //資料

insertionsort(arr1); //呼叫

console.log(arr1); //檢測

//歸併排序

//快速排序

氣泡排序

氣泡排序:每一輪迴圈從第乙個數開始,相鄰元素兩兩相比,小的數放前面(交換/不交換),一輪迴圈確定乙個數

function bubblesort(arr)

} }return arr

}arr1=;

bubblesort(arr1);

console.log(arr1)

歸併排序快速排序2.搜尋演算法

//順序搜尋

//二分搜尋

3.其他

//貪心演算法

//動態規劃

演算法和資料結構

演算法和資料結構 演算法和資料結構 千絲萬縷的聯絡 縱觀各種演算法書籍,大多都是將演算法和資料結構作為乙個整體來講述。資料結構就是陣列 樹結構等儲存或表現物件資料的結構。將演算法和資料結構作為整體講述,是因為必須依照演算法中的常用操作選擇資料結構。例如,事先將資料儲存在適當的樹形結構中,大多數情況下...

演算法和資料結構

演算法 資料結構與演算法的關係是相互依賴不可分割的。演算法的定義 演算法是解決特定問題求解步驟的描述,在計算機中為指令的有限序列,並且每條指令表示乙個或多個操作。演算法的特性 有窮性 確定性 可行性 輸入 輸出。演算法設計的要求 正確性 可讀性 健壯性 高效率和低儲存量需求。演算法特性與演算法設計容...

演算法和資料結構

好吧,在這裡,您被優秀或優秀的軟體開發人員所隔開。在這種情況下,我會告訴您,一開始或至少在我的情況下,我知道大多數時候,對於我認識的大多數人,您會覺得自己是乙個無能的人或白痴。基本上,我怎麼可能不理解這一點,然後您會感到沮喪。在這種情況下,我會告訴您情況並不像您想的那麼糟糕,您會告訴我 您知道,您甚...