排序算法
来源:互联网 发布:百度云 知乎 编辑:程序博客网 时间:2024/06/11 13:20
一、冒泡排序
- 比较相邻的元素。如果第一个比第二个大,就交换他们两个;
- 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数;
- 针对所有的元素重复以上的步骤,除了最后一个;
- 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
var arr = [1,11,2,32,15,23,67,3];function bubbleSort(){ var temp = -1; for (var i = 1; i < arr.length; i++) { for (var j = 0; j < arr.length-i; j++) { if(arr[j+1]<arr[j]){ temp = arr[j+1]; arr[j+1] = arr[j]; arr[j] = temp; } } } for (var i = 0; i < arr.length; i++) { console.log(arr[i]) }}
二、选择排序
选择排序法的第一层循环从起始元素开始选到倒数第二个元素,主要是在每次进入的第二层循环之前,将外层循环的下标赋值给临时变量,接下来的第二层循环中,如果发现有比这个最小位置处的元素更小的元素,则将那个更小的元素的下标赋给临时变量,最后,在二层循环退出后,如果临时变量改变,则说明,有比当前外层循环位置更小的元素,需要将这两个元素交换。
var arr = [1, 11, 2, 32, 15, 23, 67, 3]; function selectionSort() { var minIndex = -1; var temp = -1; for (var i = 0; i < arr.length - 1; i++) { minIndex = i; for (var j = i + 1; j < arr.length; j++) { if (arr[j] < arr[minIndex]) { minIndex = j; } } if (minIndex !== i) { temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp; } } for (var i = 0; i < arr.length; i++) { console.log(arr[i]) }}
三、快速排序
快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
function quickSort(arr, low, high) { if (low > high) { return; } var l = low; var h = high; var povit = arr[low]; while (l < h) { while (h > l && arr[h] >= povit) { h--; } if (l < h) { arr[l] = arr[h]; l++; } while (l < h && arr[l] <= povit) { l++; } if (l < h) { arr[h] = arr[l]; h--; } } arr[l] = povit; quickSort(arr, low, l - 1); quickSort(arr, h + 1, high);}
阅读全文
0 0
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- Spring boot 整合mybtais和druid
- JDBC技术
- spring boot 使用hibernate-validation
- osgViewer应用基础
- NVcaffe源码阅读——Blob的重新构建
- 排序算法
- NOIP2016Day1T1玩具谜题解题报告
- spring boot 多数据源动态切换
- Ubuntu14.04安装最新版Docker
- Hadoop小兵笔记【五】hadoop2.2.0伪分布式环境搭建疑难-第一个用例wordcount失败
- 一个m*n的矩阵,从左到右从上到下都是递增的,给一个数x,判断x是否在矩阵中。要求效率尽可能的高
- 多人聊天室(基于Linux的SOCKET UDP编程)
- Python 标准库 urllib
- spring boot 使用fastjson