Java数组如何排序?列出五种常用方法
Java中的数组排序是一个非常基础的问题,也是面试中经常被问到的问题。本文将为您介绍五种常见的排序方法。
Arrays.sort()
Arrays.sort()排序方法是Java中最简单也是最常用的排序方法
int[] arr1 = {21,16,34,5,20};
Arrays.sort(arr1);
for(int i=0;i
输出结果
5 16 20 21 34
从输出结果可以知道Arrays.sort()
排序方法默认按照升序对数组进行排序。
冒泡排序
顾名思义,就像气泡一样,较轻的浮在上面,较重的沉下去。那么如何知道哪一个更轻,哪一个更重呢?也就是比较数组中数字的大小。有必要比较两个相邻的数字。如果前者大于后者,则两个数交换位置,较大的继续与下一个比较;如果后者更大,则位置不变,继续比较较大的。该位继续与下一位进行比较。
包simple_sort;
公共课 Dome_sort {
/**
* @param args
*/
public static void main(String[] args) {
//TODO 自动生成方法存根
int[] 数字 = new int[]{1,9,5,6,7};
int i,j;
for(i =0;i
for(j=0;j
{
if(数字[j]>数字[j+1])
{
int temp= 数字[j];
数字[j]=数字[j+1];
数字[j+1]=temp;
}
}
}
System.out.println("排序结果");
for(i=0;i
System.out.print(numbers[i]+" ");
}
}
输出结果
1 5 6 7 9
选择排序
选择排序的原理就是遍历元素,找到一个最小值或者最大值,然后把这个值放在前面,继续在剩下的所有元素中选择最小值和最大值。重复此操作直至排序完成。
公共类SortDemo {
公共静态无效主(字符串[] args){
int[] arr = 新 int[] { 5, 3, 6, 2, 10, 2, 1 };
选择排序(arr);
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
公共静态无效 selectSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
int minIndex = i; // 用于记录最小值的索引位置,默认值为i
for (int j = i + 1; j < arr.length; j++) {
if (arr[j] < arr[minIndex]) {最小索引 = j; // 遍历i+1~length的值,找到最小值的位置
}
}
//交换当前索引i和最小索引minIndex处的值
if (i != minIndex) {
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = 临时;
}
// 执行一次循环后,当前索引i处的值为最小值,直到循环结束即可完成排序。
}
}
}
输出结果
1 2 2 3 5 6 10
逆序排序
逆序排序就是将原数组的顺序反转并输出。它的思想也很简单,就是交换数组的第一位和最后一位数字;交换数组的第二个和倒数第二个数字......依此类推,直到反转完成。
公共类反向排序{
公共静态无效主(字符串[] args){
int arr[]= {10,20,30,40,50,60};
反向排序排序=新的反向排序();
排序(arr);
}
公共无效排序(int []数组){
国际温度;
int len=数组.length;
for (int i = 0; i < len/2; i++) {
临时=数组[i];
数组[i]=数组[len-1-i];
数组[len-1-i]=temp;
}
for (int i = 0; i < array.length; i++) {
System.out.println(数组[i]);
}
}
}
结果输出
60 50 40 30 20 10
直接插入排序
直接插入排序的原理是使用定义的数组从第二个到最后一个元素作为顺序插入的数据。分别将它们与各自之前的值进行比较。如果比较的比前者小,则直接插在前者前面。直到比较到达小于插入数据的值,或者到达第一个位置,停止比较和插入。
公共类InsertAlgorithm {
公共静态无效insertAlgorithm(int r []){
for(int i=1;i=0&&insertNumber
输出结果
8 25 39 52 67 70 95
总结
以上就是Java中数组排序的五种常见排序方法。如果您想了解更多Java数组排序方法,请多多关注和支持W3Cschool!
相关文章
- 11-28 强的新纪元:深度融合与改变我们的世界
- 11-28 智能家居行业趋势如何,趋势:引领行业标准化
- 11-28 笔记本市场前景展望:竞争格局、发展趋势与营销策略
- 11-27 5G手机性价比排行榜最新出炉!这些机型值得购买!
- 11-27 流媒体服务的优缺点,让你畅享视听盛宴
- 11-27 数码摄影摄像入门全攻略:从设备到后期,一篇文章教你
- 11-26 5G手机评测排名前十:让你拥有最快的网速!
- 11-26 最新5g手机评测排行榜前十名,手机评测排行榜前十名
- 11-26 电子书阅读器大比拼:谁是最亮的星?
- 11-25 无人机摄影:飞越天际,捕捉绝美瞬间
- 11-25 智能家居趋势如何描述,生活的潮流与变革
- 11-25 主流电子书阅读器评测,让你选出最适合自己的阅读利器
- 11-24 虚拟现实和增强现实:技术差异与未来融合
- 11-24 智能家居以后的趋势,未来已来,智能家居引领潮流
- 11-24 虚拟现实技术国家重点实验室,重点实验室:开启未来科
- 11-23 5G手机大对比:优缺点一览,让你选购无忧
- 11-23 掌握数码相机与摄影技巧,拍出绝美照片
- 11-23 笔记本电脑市场分析表格
- 11-22 数码相机技术美:捕捉精彩画面的奥秘
- 11-22 掌握数码相机与摄影技巧,拍出惊艳作品!
- 最近发表