八大排序--选择排序
目录
什么是选择排序?
选择排序是一种简单直观的排序算法,它的基本思想是在每一次遍历中找到最小(或最大)的元素,将其放置到序列的起始位置。这个过程会不断重复,直到所有的元素都被排序。尽管选择排序的时间复杂度为O(n^2),它的优点在于不占用额外的内存空间。
算法步骤
1、首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。
2、再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
3、重复第二步,直到所有元素均排序完毕。
举例说明
数组:1,5,9,2,4,3,8
第一次:选择为排序的序列中最小的为1,把1放到到第一个位置(1,5,9,2,4,3,8)
第二次:未排序的(1,5,9,2,4,3,8),最小的为2, (1,2,9,5,4,3,8)
第三次:未排序的(1,2,9,5,4,3,8),最小的为3, (1,2,3,5,4,9,8)
第四次:未排序的(1,2,3,5,4,9,8),最小的为4, (1,2,3,4,5,9,8)
第五次:未排序的(1,2,3,4,5,9,8),最小的为5. (1,2,3,4,5,9,8)
第六次:略
最终结果为(1,2,3,4,5,8,9)
动图演示
(来源1.2 选择排序 | 菜鸟教程)
代码实现(Java)
public class choose {
public static void main(String[] args) {
int[] a= new int[]{1,5,9,2,4,3,8};
for (int j = 0;j<a.length-1;j++){
int num = j;
int min = a[j];
for (int i =j+1;i<a.length;i++){
if(a[i]<min){
min = a[i];
num = i;
}
}
a[num]=a[j];
a[j]=min;
}
System.out.println(Arrays.toString(a));
}
}
如果存在问题请及时指正,谢谢!
原文地址:https://blog.csdn.net/a13641376265/article/details/145244815
免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!