数组常用排序方法

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 (int j = i + 1; j < arr.length; j++) {
                swap(arr, i, j);
            }
        }
    }

2、冒泡排序

  从第一个数组角标开始比较数组相邻数据大小,假如arr[0]>arr[1],则这两个数据在数组中位置互换;假如arr[1]<arr[2],则两个数据位置不变第一次比较完毕,最大数据被放到数组尾部。然后开始第二轮比较,依然从数组角标0开始比较。

   public void bubbleSort(int[] arr) {
        //arr.length-1 防止数组下标越界
        for (int i = 0; i < arr.length - 1; i++) {//外层循环控制排序趟数
            for (int j = 0; j < arr.length - 1 - i; j++) {//内层循环控制每一趟排序多少次
                swap(arr, i, j);
            }
        }
    }

3、快速排序 

(1) 从数列中挑出一个基准值。

(2) 将所有比基准值小的摆放在基准前面,所有比基准值大的摆在基准的后面(相同的数可以到任一边);在这个分区退出之后,该基准就处于数列的中间位置。

(3) 递归地把"基准值前面的子数列"和"基准值后面的子数列"进行排序。

原文地址:https://www.cnblogs.com/ysit/p/9697101.html

时间: 2024-10-12 14:16:43

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

javascript中数组常用的方法

在JavaScript中,数组可以使用Array构造函数来创建,或使用[]快速创建,这也是首选的方法.数组是继承自Object的原型,并且他对typeof没有特殊的返回值,他只返回'object'. 运行[] instanceof Array他会返回ture.虽然结果是这样,但也有复杂的类数组对象,如字符串或arguments对象,但arguments对象并非是Array的实例,但他却拥有length属性,而且他的值是可以被索引的,因此他可以像一个数组那样被遍历. 这本文中,我将介绍数组原型的一

javascript中数组常用的方法和属性

前言 在javascript中,数组是一种非常重要的数据类型,我们时常会和它打交道,最近在开发项目中频繁的使用到数组,但是自己对数组的众多方法已经是非常模糊了,为了方便自己以后能够更好的使用数组中的属性和方法,在此记录一下. 数组常用的属性和方法 常用属性 Array.length:返回数组的大小 常用方法 Array.pop():删除并返回数组的最后一个元素 Array.push():向数组的结尾添加元素 Array.shift():将元素移除数组 Array.unshift():向数组头部添

数组重排序方法

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

自己的小问题和数组常用的方法

1.构造方法需要加空方法,而构造方法的名字是和类名一模一样的成员方法是不需要空方法的2.scanner使用最好用循环来完成,当输入时其顺序是不是按照你给的顺序完成的 3. 错误的: int temp=0: arr[temp]=arr[i]; arr[i]=arr[max]; arr[max]=arr[temp]; 在定义空的变量进行传递数值的时候,不能用arr[temp],这样会将索引及数传递丢了一部分 数组Arrays (1)数组:存储同一种数据类型的多个元素的容器. (2)特点:每一个元素都

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,所

JavaScript数组常用API方法汇总

1.push() 方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度. const animals = ['pigs', 'goats', 'sheep']; const count = animals.push('cows'); console.log(count); // expected output: 4 console.log(animals); // expected output: Array ["pigs", "goats", "s

数组常用的方法总结

//引用类型---Array类型-数组篇总结 // 创建数组两种方式 //-.使用Array构造函数 let colors = new Array(); //创建数组数量 let colors2 = new Array(20); //包含3个字符值的数组 let colors3 = new Array("red", "blue", "green"); console.log('first---', colors, colors2, colors3