推广 热搜: csgo  vue  2023  angelababy  gps  信用卡  新车  htc  落地  控制 

JAVA入门学习笔记----数组排序

   2023-07-31 网络整理佚名2670
核心提示:找出待排序数组中的最大值max、最小值min遍历桶数组,把排序好的元素放进输出数组原理:希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。希尔排序的增量序列的选择与证明是个数学难题,我们选择的这个增量序列是比较常用的,也是希尔建议的增量,称为希尔增量,但其实这个增量序列不是最优的。

2、分配空间 a = new int[5];

3. 赋值a[0] = 8;

4、处理数据a[0] = a[0] * 10;

4. 数组排序

1. .sort(数组名); 按升序排序(从小到大)

2.冒泡排序

原理:比较两个相邻元素,将值较大的元素向右交换;

思路:依次比较相邻的两个数,较小的数放在前面,较大的数放在后面。

(1)第一次比较:首先比较第一个和第二个数字,小数在前,大数在后。

(2)比较第二个和第三个数,小数在前,大数在后。

……

(3)如此继续下去,直到最后两个数字比较完毕,将小数放在前面,大数放在后面,重复步骤,直到所有排序完成

(4)上述比较完成后,最后一个数一定是数组中最大的数,所以第二次比较时,最后一个数不参与比较。

(5)第二次比较完成后,倒数第二个数字也一定是数组中倒数第二大的数字,所以在第三次比较时,最后两个数字不参与比较。

(6) 以此类推,每次行程的比较次数依次递减

3.选择排序

原理:每遍都从待排序的记录中选择最小的元素,并将其放在已排序序列的末尾,直到所有记录都排序完毕。

1:从a[0]-a[N-1]中选择最小的数据,然后与a[0]交换位置

2:从a[1]-a[N-1]中选择最小的数据,然后与a[1]交换位置(a[0]是步骤1结束后N个数中的最小值)

3:从a[2]-a[N-1]中选择最小的数据,然后与a[2]交换位置(经过步骤2,a[1]是N-1个数中的最小值

4. 桶排序

原理:将数组arr分成n个相同大小的子区间(桶),每个子区间单独排序,最后合并

计数排序是桶排序的一种特例,可以看作每个桶中只有一个元素的情况。

1、找到待排序数组中的最大值max和最小值min

2.我们使用动态数组作为桶,桶中的元素也被存储。 桶数为(max-min)/arr.+1

3、遍历数组arr,计算每个元素arr[i]的桶

4. 每个桶单独排序

5、遍历桶数组,将排序后的元素放入输出数组中

5. 希尔排序

原理:希尔排序是将记录按照下标的一定增量进行分组,并使用直接插入排序算法对每个组进行排序; 随着增量逐渐减小,每组包含的关键字越来越多,当增量减小到 1 时,整个文件就被分成一组,算法终止。

我们来看看希尔排序的基本步骤。 这里我们选择增量gap=/2,并以gap=gap/2的方式继续缩小增量。 这种增量选择可以用序列{n/2,(n/2)/2...1}来表示,称为增量序列。 希尔排序增量序列的选择和证明是一个数学问题。 我们选择的增量序列是比较常用的,也是Hill建议的增量。 称为希尔增量,但实际上这个增量序列并不是最优秀的。 这里我们用 Hill 增量来做一个例子。

6. 快速排序

原理:选择一个关键值作为基准值。 小于参考值的在左边(一般无序),大于参考值的在右边(一般无序)。 通常选择序列的第一个元素。

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报
Powered By DESTOON