冒泡排序
在冒泡排序的过程中,按照要求从小到大排序或从大到小排序,不断比较数组中相邻两个元素的值,较小或较大的元素前移。
/* 冒泡排序——从小到大进行排序 */
var arr = [10,7,5,27,98,31]//待排序数组
console.log("排序前的数组元素:")
console.log(arr)
for(var i=0;i<arr.length-1;i++){//控制需要比较的轮数
for(var j=0;j<arr.length-1-i;j++){
if(arr[j+1]<arr[j]){
var temp = arr[j]
arr[j] = arr[j+1]
arr[j+1] = temp
}
}
}
console.log("排序后的数组元素:")
console.log(arr)
选择排序
每次从当前无序序列中找最小(大)数,并记录其下标,让最小(大)数与当前无序序列的第一个数进行交换,循环操作直到数组有序。
/* 选择排序-升序 */
console.log('------选择排序-升序---')
var arr = [10,7,5,27,98,31]
console.log("排序前的数组元素:")
console.log(arr)
for(var i=0;i<arr.length;i++){ //外循环:控制比较的趟数
var k=i//记录当前无序序列最小数的下标
var min=arr[k]
for(var j=i+1;j<arr.length;j++){//内循环:找当前无序序列的最小数,用k记录下标
if(min>arr[j]){
min = arr[j]
k=j
}
}
if(k!=i){//将当前无序序列中的最小数和当前无序序列的第一个元素进行交换
var temp=arr[i]
arr[i]=arr[k]
arr[k]=temp
}
}
console.log("排序后的数组元素:")
console.log(arr)
插入排序
通过构建有序数组元素的存储,对未排序的数组元素,在已排序的数组中从最后一个元素向第一个元素遍历,找到相应位置并插入。
var arr = [10,8,100,31,87,70,1,88]
for(var i=1;i<arr.length;i++){
var j = i-1
var temp = arr[i]
while(arr[j]>temp&&j>-1){
arr[j+1] = arr[j]
j--
}
arr[j+1] = temp
}
console.log(arr)