请用Java实现冒泡、插入、选择排序中的任意一个排序算法。
作为初学者,以下实现方法可能笨拙或有误,希望有大神看到后给予优化和指点!~
public class Sort {
public static void main(String[] args) {
int [] unsorted = {1,15,10,66,99,88};
int[] mpSort = MPSort(unsorted);
System.out.println(Arrays.toString(mpSort));
System.out.println("-----------------------");
int[] xzSort = XZSort(unsorted);
System.out.println(Arrays.toString(xzSort));
System.out.println("-----------------------");
int[] crSort = CRSort(unsorted);
System.out.println(Arrays.toString(crSort));
}
//冒泡排序
public static int[] MPSort(int[] arr){
for(int i = arr.length - 2;i >= 0;i--){
for(int j = 0;j <= i;j++ ){
if(arr[i] > arr[i+1]){
int tmp;
tmp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = tmp;
}
}
}
return arr;
}
//插入排序
public static int[] CRSort(int[] unsorted){
for (int i = 1; i < unsorted.length; i++)
{
if (unsorted[i - 1] > unsorted[i])
{
int temp = unsorted[i];
int j = i;
while (j > 0 && unsorted[j - 1] > temp)
{
unsorted[j] = unsorted[j - 1];
j--;
}
unsorted[j] = temp;
}
}
return unsorted;
}
//选择排序
public static int[] XZSort(int[] arr){
for(int i = 1;i < arr.length-1;i++){
for(int j = i;j < arr.length-1;j++){
if(arr[j-1] > arr[j]){
int tmp;
tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
return arr;
}
}
下面附上大神-续写经典的博文:
Java常用排序算法/程序员必须掌握的8大排序算法。