版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_16658263/article/details/85560455
更多内容:www.lifesmile.cn
选择排序和前面讲的插入排序有点类似,也是分为已排区和未排区。
思路:
- 初始状态下,已排区是没有任何数据,未排区是所有需要排序的数据。
- 在未排区中找到最小的值,放到已排区的末尾(也可以理解为交换位置)。
代码:
public class SelectSort {
private static int[] bubbleSort(int[] data){
if(data == null || data.length<=1){
return data;
}
for (int i = 0; i <data.length-1 ; i++) {
int index = i ;
for (int j = i+1; j < data.length; j++) {
if (data[i] > data[j]){
index = j; //记录未排区最小的位置
}
}
if (index != i) { //进行交换
int temp = data[index];
data[index] = data[i];
data[i] = temp;
}
}
return data;
}
public static void main(String[] args) {
int[] data = {9,8,5,4,2,0};
int[] sort = bubbleSort(data);
System.out.println(Arrays.toString(sort));
}
}
微信公众号:LifeSmile