-
基本数据结构通常分为堆和栈:
-
栈:Number,String,Null,undefined,Boolean,以及es6新增的Symbol;
栈的特点就是先进后出,程序员分配空间 堆:Array,Object,Function,Data -
堆的特点可以看作为树,它是对基本数据类型引用的地址及指针的保存 ,是系统自动分配空间
-
基本算法
-
冒泡排序
相邻元素比较就是冒泡核心
function Bubble_Sort(a){
let len=a.length;
let temp;
for(let i=0;i<len;i++){
for(let j=i+1;j<len;j++){
if(a[i]>a[j]){
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
return a;
}
- 快速排序
function Quick_Sort(a){
let len=a.length;
let pivot=a[0];//设置一个枢纽
let leftarr=[];
let rightarr=[];
if(a.length<=1){
return a;
}
for(let i=1;i<len;i++){
if(a[i]>pivot){
rightarr.push(a[i]);
}
else{
leftarr.push(a[i]);
}
}
return [].concat(Quick_Sort(leftarr),pivot,Quick_Sort(rightarr));//拼接数组
}
- 插入排序
function Insert_Sort(a) {
let temp;
for (let i=1;i<a.length;i++) {
while(a[i-1]>a[i]){
temp=a[i];
a[i]=a[i-1];
a[i-1]=temp;
i--;
}
}
return a;
}
- 选择排序
function Select_Sort(a) {
let minIndex=0;
let temp;
if (a.length<=1){
return a;
}
for (let i=0;i<a.length;i++){
minIndex=i;
for (let j=i+1;j<a.length;j++) {
if (a[j]<a[minIndex]) {
minIndex=j;
}
}
temp=a[i];
a[i]=a[minIndex];
a[minIndex]=a[i];
}
return a;
}