js实现基础的排序-冒泡排序、选择排序、插入排序
2018-03-13 10:55
489 查看
一、冒泡排序:function bubbleSort(arr) {
var len=arr.length;
for(var outer=0;outer<len-1;outer++)
for(var inner=0;inner<len-outer+1;inner++){
if(arr[inner]>arr[inner+1]){ //比较相邻元素
let temp=arr[inner+1];
arr[inner+1]=arr[inner];
arr[inner]=temp;
}
}
return arr;
}
二、选择排序:function selectionSort(arr) {
var len=arr.length;
var temp;
for(var i=0;i<len-1;i++){
var strmin=i;
for(var j=i+1;j<len;j++){
if(arr[j]<arr[strmin]){ //找到剩余元素的最小值
strmin=j;
}
}
temp=arr[i];
arr[i]=arr[strmin];
arr[strmin]=temp; //将最小值归位
}
return arr;
}
三、插入排序
第一趟 对下标 1 处的元素进行排序,保证数组[0,1]上的元素有序;第二趟 对下标 2 处的元素进行排序,保证数组[0,2]上的元素有序;..........第N-1趟对下标 N-1 处的元素进行排序,保证数组[0,N-1]上的元素有序,也就是整个数组有序了。它的递归思想就体现在:当对位置 i 处的元素进行排序时,[0,i-1]上的元素一定是已经有序的了。 function insertSort(arr) {
var len=arr.length;
for (var i = 1; i < len; i++) {
temp=arr[i];
// for (var j = i;j>=0; j--) {
// if(arr[i-1]>arr[i]){
// arr[i]=arr[i-1];
4000
// }else{
// break;
// }
// }
var j=i;
while(j>=0 && arr[j-1]>=temp){ //找到外循环元素合适的位置
arr[j]=arr[j-1]; //将内循环中的元素右移
j--;
}
arr[j]=temp; //将外循环元素归为
}
return arr;
}
var len=arr.length;
for(var outer=0;outer<len-1;outer++)
for(var inner=0;inner<len-outer+1;inner++){
if(arr[inner]>arr[inner+1]){ //比较相邻元素
let temp=arr[inner+1];
arr[inner+1]=arr[inner];
arr[inner]=temp;
}
}
return arr;
}
二、选择排序:function selectionSort(arr) {
var len=arr.length;
var temp;
for(var i=0;i<len-1;i++){
var strmin=i;
for(var j=i+1;j<len;j++){
if(arr[j]<arr[strmin]){ //找到剩余元素的最小值
strmin=j;
}
}
temp=arr[i];
arr[i]=arr[strmin];
arr[strmin]=temp; //将最小值归位
}
return arr;
}
三、插入排序
第一趟 对下标 1 处的元素进行排序,保证数组[0,1]上的元素有序;第二趟 对下标 2 处的元素进行排序,保证数组[0,2]上的元素有序;..........第N-1趟对下标 N-1 处的元素进行排序,保证数组[0,N-1]上的元素有序,也就是整个数组有序了。它的递归思想就体现在:当对位置 i 处的元素进行排序时,[0,i-1]上的元素一定是已经有序的了。 function insertSort(arr) {
var len=arr.length;
for (var i = 1; i < len; i++) {
temp=arr[i];
// for (var j = i;j>=0; j--) {
// if(arr[i-1]>arr[i]){
// arr[i]=arr[i-1];
4000
// }else{
// break;
// }
// }
var j=i;
while(j>=0 && arr[j-1]>=temp){ //找到外循环元素合适的位置
arr[j]=arr[j-1]; //将内循环中的元素右移
j--;
}
arr[j]=temp; //将外循环元素归为
}
return arr;
}
相关文章推荐
- js实现的冒泡排序、选择排序、插入排序、快速排序
- 数据结构与算法——三种基础排序算法C#实现(冒泡排序、选择排序、插入排序)
- 用JS实现冒泡排序、插入排序、选择排序、快速排序
- 用JS实现冒泡排序、插入排序、选择排序、快速排序
- 排序基础之插入排序、冒泡排序、选择排序详解与Java代码实现
- C#实现的3种排序算法--冒泡排序、选择排序、插入排序
- Java实现冒泡排序,选择排序,插入排序
- 几种常见排序算法之Java实现(插入排序、希尔排序、冒泡排序、快速排序、选择排序、归并排序)
- 冒泡排序、选择排序、插入排序的js实现
- 各种排序算法实现——基数排序、归并排序、插入排序、冒泡排序、选择排序、快速排序、堆排序、希尔排序
- C#实现的3种排序算法--冒泡排序、选择排序、插入排序
- 黑马程序员——java基础排序算法:选择排序、冒泡排序和插入排序
- Python实现 -- 冒泡排序、选择排序、插入排序
- java实现冒泡排序,插入排序,选择排序,快速排序
- Javascript实现三种排序:冒泡排序、选择排序、插入排序
- 插入排序、冒泡排序、选择排序、希尔排序、快速排序、归并排序、堆排序和LST基数排序——C++实现
- Python实现冒泡排序,选择排序,插入排序
- 【WEB】JS实现选择排序,插入排序与归并排序
- java 实现 冒泡排序、选择排序、插入排序。
- 冒泡排序、选择排序、插入排序、快速排序算法的时间性能分析(java实现)