几种排序方法的Java实现
1.冒泡排序法
思想:原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,这样一趟过去后,最大或最小的数字被交换到了最后一位,然后再从头开始进行两两比较交换,直到倒数第二位时结束。
代码如下:
public static void bubbleSort(int[] a){ for(int i=(a.length-1);i>=1;i--){ for(int j=0;j<i;j++){ if(a[j]>a[j+1]){ int temp; temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } }
2.选择排序法
思想:比如在一个长度为N的无序数组中,在第一趟遍历N个数据,找出其中最小的数值与第一个元素交换,第二趟遍历剩下的N-1个数据,找出其中最小的数值与第二个元素交换......第N-1趟遍历剩下的2个数据,找出其中最小的数值与第N-1个元素交换,至此选择排序完成。
代码如下:
public static void selectionSort(int[] a){
for(int i=0;i<(a.length-1);i++){
for(int j=i+1;j<=a.length-1;j++){
if(a[i]>a[j]){
int temp;
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
}
3.插入排序
思想:插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕插入排序方法分直接插入排序和折半插入排序两种,这里只介绍直接插入排序,折半插入排序留到“查找”内容中进行。图1演示了对4个元素进行直接插入排序的过程,共需要(a),(b),(c)三次插入。

代码如下:
public static void insertSort(int[] a){
for(int i=1;i<=a.length-1;i++){
for(int j=i;j>0;j--){
if(a[j]<a[j-1]){
int temp;
temp=a[j];
a[j]=a[j-1];
a[j-1]=temp;
}
else{
break;
}
}
}
}

浙公网安备 33010602011771号