Java基础知识强化12:Java中运用数组的四种排序方法
2024-10-09 02:24:38
1、使用JavaApi文档中的Arrays类中的sort()进行快速排序
首先我们直接看代码如下:
package himi.text; import java.util.Arrays; public class TestDemo01 { public static void main(String[] args) {
int[] array = {2,12,3,44,27};
/**
* 利用使用JavaApi文档中的Arrays类中的sort()进行快速排序
*/
Arrays.sort(array);//调用Array的静态方法Sort进行排序,升序排列
for(int show:array) {
System.out.print(show+" ");//升序输出
}
System.out.println();
System.out.println("---------------"); for(int i=0; i<array.length-1; i++)
System.out.print(array[array.length-1-i]+" ");//降序输出 } }
代码运行结果如下:
2.冒泡法排序:
冒泡法算法思路:如果有N个数,则要进行N-1次比较,在每一次比较中要进行N-1次两两比较。所谓的两两比较就是从头到尾将相邻两个数进行比较,并将其中较大的数放在前或者放在后(放在前就是降序,放在后就是升序)
package himi.text; public class TestDemo02 { public static void main(String[] args) {
int[] arrays = { 12, 23, 8, 17, 5 };
bubbleSort(arrays);
for (int show : arrays)
System.out.print(show + " ");
} public static void bubbleSort(int[] array) {
int temp;
for (int i = 0; i < array.length - 1; i++) {
for (int j = 0; j < array.length - 1 - i; j++) {
if (array[j] > array[j + 1]) {
//方式1
// temp = array[j];
// array[j]=array[j+1];
// array[j+1]=temp; //方式2
array[j] = array[j] ^ array[j + 1];
array[j + 1] = array[j + 1] ^ array[j];
array[j] = array[j] ^ array[j + 1];
}
}
}
} }
输出结果:
3.选择排序:
首先以一个元素为基准,从一个方向开始扫描,比如从左到右扫描,以A[0]为基准,接下来从A[0]….A[9]中找出最小的元素,将其与A[0]交换。然后将其基准位置右移一位,重复上面的动作,比如,以A[1]为基准,找出A[1]~A[9]中最小的,将其与A[1]交换。一直进行到将基准位置移到数组最后一个元素时排序结束。
package himi.text; public class TestDemo03 { public static void main(String[] args) {
int[] arrays = {12,23,8,17,5};
int[] temp = selectSort(arrays);
for(int show:temp)
System.out.print(show+" ");
} public static int[] selectSort(int[] args){//选择排序算法
for (int i=0;i<args.length-1 ;i++ ){
int min=i;
for (int j=i+1;j<args.length ;j++ ){
if (args[min]>args[j]){
min=j;
}
}
if (min!=i){
int temp=args[i];
args[i]=args[min];
args[min]=temp;
}
}
return args;
} }
运行结果如下:
4.插入排序算法:
所谓插入排序法,就是检查第i个数字,如果在它的左边的数字比它大,进行交换,这个动作一直继续下去,直到这个数字的左边数字比它还要小,就可以停止了。插入排序法主要的回圈有两个变数:i和j,每一次执行这个回圈,就会将第i个数字放到左边恰当的位置去。
package himi.text; public class TestDemo04 { public static void main(String[] args) {
int[] arrays = {12,23,8,17,5};
int[] temp = insertSort(arrays);
for(int show:temp)
System.out.print(show+" ");
}
public static int[] insertSort(int[] args){//插入排序算法
for(int i=1;i<args.length;i++){
for(int j=i;j>0;j--){
if (args[j]<args[j-1]){
int temp=args[j-1];
args[j-1]=args[j];
args[j]=temp;
}else break;
}
}
return args;
} }
运行结果:
最新文章
- 浅析call和apply的不同
- 使用Spring配合Junit进行单元测试的总结
- EXCEL datatable 根据列名自动写入到相应属性、字段或列中
- 关于JAVA应用中文字体显示小方框的问题解决
- CS加密算法
- objectC时间用法
- 开源了一个iOS输入控件【原】
- 百度贴吧的网络爬虫(v0.4)源码及解析
- git切换分支
- 通过spring 中的@Scheduled来执行定时任务
- 201521123098 《Java程序设计》第12周学习总结
- java spark-streaming接收TCP/Kafka数据
- iOS 11 &; iPhone X 适配资料集
- ORA-28002 -- oracle密码过期
- 网络1712--c语言第一次作业总结
- day20-面向对象编程、继承
- c#while循环注意continue的地方
- WPF的xaml中特殊字符表示
- Android学习笔记五:四大组件(转)
- Oracle 中包(Package)
热门文章
- PyCharm 5.0.3 快捷键
- The type java.lang.String cannot be resolved. It is indirectly referenced from required .class files
- 【POJ2699】The Maximum Number of Strong Kings(网络流)
- 如何在sourcetree 下提交代码到gerrit上
- java基础随笔-overload和override
- UI设计师的 Android 备忘录
- translate函数使用
- JQuery中如何click中传递参数
- ubuntu安装jdk1.8
- [转]让程序在崩溃时体面的退出之SEH+Dump文件