常用排序算法1--冒泡排序,选择排序,插入排序
2017-10-25 21:14
393 查看
我们先不分析排序算法的复杂度和稳定性,着重实现一遍所有的排序算法。
然后另起一篇简单的分析一下
然后另起一篇简单的分析一下
/*Sort and search method*/ function ArrayList() { var arr = []; this.insert = function (value) { arr.push(value); } this.toString = function () { return arr.join(" "); } /*按照下标的交换辅助函数*/ function swap(index1, index2) { var temp; temp = arr[index1]; arr[index1] = arr[index2]; arr[index2] = temp; } /*冒泡排序*/ this.bubbleSort = function () { var len = arr.length; for(var i=0; i<len-1; ++i) { for(var j=0; j<len-i-1; ++j) { if(arr[j] > arr[j+1]) { swap(j, j+1); } } } return this; } /*选择排序*/ this.selectionSort = function () { var len = arr.length; var min_index = 0; for(var i=0; i<len-1; ++i) { min_index = i; for(var j=i+1; j<len; ++j) { if(arr[j] < arr[min_index]) { min_index = j; } } if( i != min_index) { swap(i, min_index); } } return this; } /*插入排序*/ this.insertionSort = function () { var len = arr.length; var temp; for(var i=0; i<len-1; ++i) { for(var j=0; j<=i; ++j) { if(arr[j] > arr[i+1]) { temp = arr.splice(i+1, 1); arr.splice(j, 0, temp); } } } return this; } } function test() { var arr = [8, 7, 10, 4, 3]; var arr_list = new ArrayList(); for(var i=0; i<arr.length; ++i) { arr_list.insert(arr[i]); } console.log(arr_list.toString()); //console.log(arr_list.bubbleSort().toString()) //console.log(arr_list.selectionSort().toString()); console.log(arr_list.insertionSort().toString()) } test();
相关文章推荐
- 冒泡排序、插入排序、选择排序、希尔排序、堆排序、归并排序等常用排序算法的比较
- 元素排序几种常用的排序算法的分析及java实现(希尔排序,堆排序,归并排序,快速排序,选择排序,插入排序,冒泡排序)
- 常用的排序算法(快速排序、插入排序、希尔排序、堆排序、冒泡排序、选择排序、归并排序)
- 常用的排序算法(包括冒泡排序,选择排序,插入排序,希
- 常用算法--基本排序算法(冒泡排序,选择排序,插入排序,快速排序,归并排序,桶排序)
- 【学习总结】Java中最常用的三大排序算法-冒泡排序、选择排序、插入排序
- 几种常用的排序算法的分析及java实现(希尔排序,堆排序,归并排序,快速排序,选择排序,插入排序,冒泡排序)
- C语言常用的几种排序算法代码(选择排序,冒泡排序,插入排序,快速排序)
- 几种常用的排序算法的分析及java实现(希尔排序,堆排序,归并排序,快速排序,选择排序,插入排序,冒泡排序)
- 算法分析中最常用的几种排序算法(插入排序、希尔排序、冒泡排序、选择排序、快速排序,归并排序)C 语言版
- 冒泡排序、插入排序、选择排序、希尔排序、堆排序、归并排序等常用排序算法的比较
- [C++]数据结构:排序算法Part1----冒泡排序、选择排序、插入排序、堆排序
- 排序算法之“选择排序-冒泡排序-插入排序”
- Java实现八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序等
- 各种排序算法实现——基数排序、归并排序、插入排序、冒泡排序、选择排序、快速排序、堆排序、希尔排序
- C 语言 排序算法,冒泡排序,选择排序,插入排序,二分查找
- C#的四种排序算法:冒泡排序、选择排序、插入排序和希尔排序
- 排序算法一(冒泡排序、选择排序、插入排序)
- 几种常用的排序算法:插入排序、冒泡排序、选择排序的算法及C++实现
- Java 常用排序算法实现--快速排序、插入排序、选择、冒泡