前言
通过这两天学习各种排序算法,深刻的认识到了想出这些排序算法的真的好牛逼!被深深的折服,果真我是个菜鸡!!
所以呢,对于前人的成果,自己只要好好学习就够了,毕竟牛顿大佬说过,站在巨人的肩膀上!!我就当那个站在巨人的肩膀上的人吧,让我膜拜巨人!
好了,言归正传,今天研究了后面的几种排序算法,但是呢自己觉得懂了,但是又觉得自己不懂,所以对于这种似懂非懂的状态,最好的解决办法就是用到项目中去,于是把以前的项目翻出来,把以前自己曾经用冒泡排序写的逻辑改成了其它几种排序方法来实践,当然了最后觉得还是不是太懂。
好了,话不多说,上代码:
import java.util.Arrays;
/**
* @author Administrator
*
* 在选择排序中,设定一个已排序的空数组,将未排序的设定为一个数组
* 然后在未排序的数组中查找最小的值放到已排序的数组中
* 那么已排序的数组中每次放入的都是最小的值,并且是依次排列的
* 这样就可以将未排序的数组进行的选择排序
*/
public class selectSort {
/**
* 选择排序方法
* @param array
*/
public static void selectSort(int[] array){
//定义一个已排序的空序列
for (int i = 0; i < array.length; i++) {
//定义最小值
int minIndex = i;
//定义未排序的序列
for (int j = i; j < array.length; j++) {
//如果未排序序列中存在比minIndex小的值,则将该值赋值给minIndex
if(array[minIndex]>array[j]){
minIndex = j;
}
}
int temp = array[i];
array[i] = array[minIndex];
array[minIndex] = temp;
}
}
public static void main(String[] args) {
int[] arr = new int[5];
arr[0]=2;
arr[1]=5;
arr[2]=4;
arr[3]=3;
arr[4]=1;
System.out.println(Arrays.toString(arr));
selectSort(arr);
System.out.println(Arrays.toString(arr));
}
}