首页 > 代码库 > js:数据结构笔记11--排序算法(1)

js:数据结构笔记11--排序算法(1)

基本准备:

  function  CArray(numElems) {  	this.dataStore = [];  	this.pos = 0;  	this.numElems = numElems;  	this.insert = insert;  	this.toString = toString;  	this.clear = clear;  	this.setData = http://www.mamicode.com/setData;"";  	for(var i = 0; i < this.dataStore.length; ++i) {  		str += this.dataStore[i] + " ";  		if( i > 0 && (i+1) %10 === 0) {  			str += "\n";  		}  	}  	return str;  }  function swap(arr,index1,index2) {  	var temp = arr[index1];  	arr[index1] = arr[index2];  	arr[index2] = temp;  }

 基本排序算法:

  • 冒泡排序:最容易实现也是最慢的算法之一
    • 从头开始依次分别比较相邻的两个元素并排序,直到最后一个;此时确定最后一个会是最大的;
    • 重复上面步骤但不比较已经确定的,此时确定最后第二个是第二大的;
    • 继续重复直到剩下第一个元素为止,确定它是最小的;

    效果:

  function bubbleSort() {    var numElems = this.dataStore.length;    var temp;    for(var outer = numElems; outer > 1 ; --outer) {      for(var inner = 0; inner < outer; ++inner) {        if(this.dataStore[inner] > this.dataStore[inner + 1]) {          swap(this.dataStore,inner,inner + 1);        }      }    }  }

 demo:

  • 选择排序:

 

js:数据结构笔记11--排序算法(1)