数组的排序方法

1.冒泡排序法

  <script>
    var arr = [3, 5, 1, 8, 2, 9, 4];
    //i控制的是循环多少趟
    for (var i = 0; i < arr.length - 1; i++) {
      //假设当前的数据是已经排好序的
      var flag = true;
      //j控制的是每一次的比较,j和j+1比较,说明,j取到arr.length-1就可以了
      //外循环i每执行一次,就会有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 + 1];
          arr[j + 1] = arr[j];
          arr[j] = temp;

          //如果发生交换位置,说明没有排好序
          flag = false;
        }
      }
      //每一次比完看flag的值,如果是true,说明已经排好序,结束循环
      if(flag){
        break;
      }
    }
    console.log(arr);
  </script>

2.插入排序法

  <script>
    var arr = [3, 5, 1, 8, 2, 9, 4];
    //插入排序法
    for (var i = 1; i < arr.length; i++) {
      //从第二个数开始
      var temp = arr[i];
      //j表示从temp的前一个数开始,依次减减去比较
      for (var j = i-1; j >= 0; j--) {
        //如果当前值比它的前一项小
        if(temp < arr[j]){
          //将前一项的位置往后移动一位
          arr[j+1] = arr[j];
        }
        else{
          //如果不满足,结束循环
          break;
        }
      }
      //当内部循环结束的时候,给temp插到对应的值
      arr[j+1] = temp;
    }
    console.log(arr);

原文地址:https://www.cnblogs.com/z-lin/p/10946925.html

时间: 2025-01-01 03:03:51

数组的排序方法的相关文章

数组重排序方法

今天在复习的过程中,发现自己对数组的重排序方法sort()一直存在一个误区,重新捋顺,在此记录... 数组中存在两个可以直接用来重排序的方法:reverse()和sort(),reverse()方法就是反转数组项的顺序.在默认情况下,sort()方法按升序排列数组项,在这个过程中sort方法会调用每个数组项的toString()转型方法,然后比较得到的字符串,然后确定排序.之前一直没有注意到这一点,一直以为调用sort()方法过后会直接对一个数组进行正确排序,其实并不是这样,而是对得到的字符串进

PHP学习记录数组中的数组的排序方法

数组的排序-按首字母或者首数组排序 <?php $item=array('apple','orange','banana'); echo'未排序前'; print_r($item); echo'<br/>'.'排序后'; sort($item); print_r($item); echo'<br/>'; //数字的排序 $num=array(3,4,22,31,34,52,1,5,2,4); echo'未排序前'; print_r($num); echo'<br/>

iOS中数组的排序方法

1函数介绍与实例 函数一:- (void)sortUsingSelector:(SEL)comparator; 适用于数组中的元素自带比较函数时: 数组排序函数,调用该函数的对象为数组,comparator是调用该函数的数组中的元素的方法.函数参数类型为数组中的元素类型或者id类型,在调用时不需要传递参数,排序过程不可见,该函数执行时:循环取出各个元素,进行比较,然后放到合适的位置 使用实例: 将数组中的元素按照字符串大小排序: NSMutableArray*array = [[NSMutabl

js中的数组对象排序(方法sort()详细介绍)

定义和用法 sort() 方法用于对数组的元素进行排序. 语法    arrayObject.sort(sortby) 参数sortby:可选.规定排序顺序.必须是函数. 返回值 对数组的引用.请注意,数组在原数组上进行排序,不生成副本. 普通数组排序: js中用方法sort()为数组排序.sort()方法有一个可选参数,是用来确定元素顺序的函数.如果这个参数被省略,那么数组中的元素将按照ASCII字符顺序进行排序.如: 字母A.B的ASCII值分别为65.66,而a.b的值分别为97.98,所

数组常用排序方法

1.选择排序 从第一个数组角标开始数据比较,假如arr[0]>arr[1],则两个数据位置互换:接下来arr[0]和arr[2]比较,数据小的值放在arr[0]位置上,第一次选择排序结束,数组最小值为arr[0]:将数组中第二小数据放在arr[1]上,循环执行第一次选择排序方法. public void selectSort(int[] arr) { //arr.length-1 防止数组下标越界 for (int i = 0; i < arr.length - 1; i++) { for (

几个数组的排序方法

1.对数组进行某一键值的排序 function array_sort($arr,$keys,$type = 'asc'){ if (empty($arr)) return $arr; $keysvale = $newq_array = array(); foreach($arr as $k=>$v){ $keysvale[$k] = $v[$keys]; } if ($type == 'asc'){ asort($keysvale); }else{ arsort($keysvale); } re

数组选择排序方法

public void arrayClooseSort() {    int[] num = {10,14,3,8,11,9,2,4};    //选择排序,升序排序    for(int i = 0;i < num.length-1;i++) {        for(int j = i + 1;j < num.length;j++) {            if(num[i] > num[j]) {                int temp = num[i];        

两个数组的排序方法

var arr=['s','m','l','xl']; var list=['白色','红色','蓝色','黑色']; 转化成多个SKU(如下): [ {color:"白色", size:"s"}, {color:"白色", size:"m"}, {color:"白色", size:"l"}, {color:"白色", size:"xl"}, ..

小康陪你学JAVA--------sort方法对数组进行排序

本篇和大家分享另一种数组的操作的方法——sort方法对数组进行排序. 范例:TestJava4_5.java 01 // 以下程序是数组的排序操作,在这里使用了sort方法对数组进行排序 02 import java.util.*; 03 public class TestJava4_5 04 { 05    public static void main(String[] args) 06  { 07       int a[] = {4,32,45,32,65,32,2} ; 08 09