本文由广州疯狂软件java培训分享:
import java.util.*;
public class SortingTest {
public static void main(String[] args){
int[] arrNoSorted = {89,56,32,15,46,69,54};
// 在进行排列之前先将数组中的值依次显示出来。
System.out.print("The array before sorting \n -> [\'");
for(int x=0;x<ARRNOSORTED.LENGTH;X++){< p>
if(x!=arrNoSorted.length-1){
System.out.print(arrNoSorted[x]+"\', '");
}else{
System.out.print(arrNoSorted[x]+"\']");
}
};
System.out.print("\n\n");
// 对数组进行排序。
bubbleSorting(arrNoSorted);
// 将排序后数组的值依次显示出来。
System.out.print("The array was sorted \n -> [\'");
for(int x=0;x<ARRNOSORTED.LENGTH;X++){< p>
if(x!=arrNoSorted.length-1){
System.out.print(arrNoSorted[x]+"\', '");
}else{
System.out.print(arrNoSorted[x]+"\']");
}
};
System.out.print("\n\n");
// 使用JAVA自带的类进行排序。
Arrays.sort(arrNoSorted);
System.out.print("Array sorted by JAVA \n -> [\'");
for(int x=0;x<ARRNOSORTED.LENGTH;X++){< p>
if(x!=arrNoSorted.length-1){
System.out.print(arrNoSorted[x]+"\', '");
}else{
System.out.print(arrNoSorted[x]+"\']");
}
};
}
/* 将能够实现排序的方法单独写出来,为了能够重用。
* 能够实现数组排列的算法有很多种,
* 更多的种类可以在百度上查一下。
* 选择排序-方法1:
* (1)将数据第一个位置的值与之后每个位置的值进行比较,需要注意最后一个位置的值不需要与任何值进行比较,因此在数据长度的后面-1。
* (2)如果第二个位置的值小于第一个位置的值,那么就要对其进行位置的交换。
* (在这个算法当中,每一次比较了之后,如果第二个位置的值小于第一个位置的值的话,就需要进行一次位置的交换。可以参考在选择排序-方法2中如何避免。)
*/
public static void selectSorting(int[] arrToSorting){
for (int i = 0; i < arrToSorting.length-1; i++) {
for (int j = i+1; j < arrToSorting.length; j++) {
if (arrToSorting[j]<>
swap(arrToSorting,i,j);
}
}
}
}
/* 选择排序-方法2
* 与方法1不同的是,使用了利用临时变量来在数组中找最小值的思想。
* (1)先声明了一个变量,用来存放比较之后最小的值。再声明一个变量,用来记录最小值所在的数组中位置的角标。
* (2)遍历整个数组,最后早出数组中的最小值。
* (3)如果第一个位置的数与所找出的最小值不同,则需要将它与最小值进行交换,此时就用使用到之前声明过的最小值的角标。
*/
public static void selectSorting2(int[] arrToSorting) {
for (int i = 0; i < arrToSorting.length-1; i++) {
int minValue = arrToSorting[i];//声明存在最小值的变量
int minValueIndex = i;//声明遍历到的数组中最小值的角标,为了在遍历之后的swap
//遍历从该位置开始的整个数组。寻找数组中的最小值。
for (int j = i+1; j < arrToSorting.length; j++) {
if (minValue > arrToSorting[j]) {
minValue = arrToSorting[j];
minValueIndex = j;
}
}
//将遍历之后所获得的最小值的角标与i值进行比较,如果一样的话则说明该位置上的值已经是最小值,
//如果不一样的话,说明遍历后的最小值比该位置上的值要小,因此就需要对其位置进行交换。
if (i!=minValueIndex) {
swap(arrToSorting,i,minValueIndex);
}
}
}
/* 气泡排序(Bubble Sort)
* (1)气派排序的核心是将通过不断的比较将最大值推到数组的后面,反复进行这样的过程,就能够实现排序。
* (2)需要注意的是循环的次数,尤其是内循环时不过不-1的话,会出现overbound错误。
*/
public static void bubbleSorting(int[] arrToSorting) {
for (int i = 0; i < arrToSorting.length-1; i++) {
for (int j = 0; j < arrToSorting.length-1; j++) {
if (arrToSorting[j]>arrToSorting[j+1]) {
swap(arrToSorting,j,j+1);
}
}
}
}
/* 实现数据位置交换的方法。
* 注意:在数据中位置交换的时候,需要3个参数,分别是:数组的名字,要进行交换的两个角标。
*/
public static void swap(int[] arrToSwap,int a, int b){
int temp = arrToSwap[a];
arrToSwap[a]=arrToSwap[b];
arrToSwap[b]=temp;
}
}
学IT技术就学Java技术,疯狂软件Java培训机构,打造国内高级Java人才。
疯狂软件Java培训优势
1. Java是世界第一大编程语言,市场占有率达20%。
2.广州最专业Java培训机构,多年教学经验。
3.学员技术牛就业率最好,就业薪资都在5000以上。
4.疯狂软件Java培训课程以项目实战带动教学,上课打破传统课堂模式,以实训项目贯穿教学,带领学生一起做企业真实项目。
疯狂软件中心Java培训、iOS培训打造名企技术经理,成为中国软件产业的中流砥柱:全真企业需求,项目小组管理,大量实操项目的疯狂训练,企业全真案例教学,学成至少相当于两年工作经验“全真项目”教学,高强度的狂热训练,带领学生走近编程,感受编程,热爱编程,学完后产生凤凰涅槃般的重生。 “全真企业环境”模拟:以项目组形式管理,每个程序员(学员)对项目组长负责,组长向项目经理(老师)负责。以版本控制工具为引导,充分激发每个程序员对编程的激情 四个半月掌握近8~10万代码量,达到技术经理的代码掌握量。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步