【算法】【JAVA】选择排序
选择排序与冒泡排序有点相似,他们的相同点都是要对数组进行N-1次比较,不同的是,冒泡排序一次循环至多需要进行N-1次交换,而选择排序一个循环只需要进行一次交换。其算法如下:
1.对数组进行遍历,设置一个变量记录下数组中的最小元素,遍历一遍之后,将扫描到最小元素的位置与数组的第一个元素交换,交换过后数组最左边的元素自动成为最小的元素。
2.依次对剩下的元素进行遍历,第二次从数组的第二个元素,即a[1]开始遍历,因为a[0]已经是数组中最小的元素了……以此类推,最终会得到递增排序的数组。
3.选择排序与冒泡排序在N较大的情况下时间复杂度均为N*N,但选择排序进行交换的次数较少,对冒泡排序进行了一定的优化。
public class SelectSort {
public static void main(String[] args){
int[] array ={5,3,2,4,1};
int x = 0;//记录最小数的位置
for(int i =0;i<array.length;i++){
int temp = array[i];
for(int j =i;j<array.length;j++){
if(array[j]<temp) {
temp=array[j];
x=j;
}
}
array[x]=array[i];
array[i]=temp;
}
for(int m =0;m<array.length;m++){
System.out.println(array[m]);
}
}
}

浙公网安备 33010602011771号