用js语言对数组算法进行编写

tech2023-05-10  132

假设有数组[8,2,32,4,1,9],编写算法进行升序排列,算法不做要求,可以使用冒泡/选择/插入… var arr = [8,2,32,4,1,9]; 第一种:var result = arr.sort(); 第二种:var result = arr.sort(function(a,b){ return a-b; }); 第三种:var result = arr.sort(function(a,b){ if(a-b<0){ return -1; } return 1; }) 第三种(冒泡排序):for (var i = 0; i < arr.length-1; i++) { //控制比较几轮 for (var j = 0; j < arr.length - 1 - i; j++) { //控制每轮内的比较 if (arr[j] > arr[j + 1]) { var temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } 第四种(选择排序):for (var i = 0; i < arr.length - 1; i++) { //假设0位是最小的 var minIndex = i; //从之后的元素中找最小的 for (var j = i + 1; j < arr.length; j++) { if(arr[j] < arr[minIndex]){ minIndex = j; } } var temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp; } 第五种(插入排序):for(var i=0;i<arr.length-1;i++){ //比较相邻元素,如果当前要插入的元素比之前的相邻元素小,交换 for(var j=i+1;j>0;j–){ if(arr[j]<arr[j-1]){ var temp = arr[j]; arr[j] = arr[j-1]; arr[j-1] = temp; } } console.log(‘第’+(i+1)+‘轮’,arr); } console.log(‘排序后的数组’,arr);

最新回复(0)