一头扎进算法排序-直接选择排序

川长思鸟来 2022-07-15 00:01 267阅读 0赞

定义:它的基本思想是:第一次从R[0]~R[n-1]中选取最小值,与R[0]交换,第二次从R[1]~R[n-1]中选取最小值,与R[1]交换,….,第i次从R[i-1]~R[n-1]中选取最小值,与R[i-1]交换,…..,第n-1次从R[n-2]~R[n-1]中选取最小值,与R[n-2]交换,总共通过n-1次,得到一个按排序码从小到大排列的有序序列·

过程:
点击这里查看,一点就通

用自己的话说:从数组的0开始排序,每次排序的时候从数组后面选取一个最小值与当前值进行交换,这个算法还是比较简单的。

代码:

  1. public int[] sort(int[] a){
  2. for(int i=0;i<a.length;i++){
  3. int li = i;//最小值位置
  4. for(int j=li+1;j<a.length;j++){
  5. //从该值后面的值开始向后遍历
  6. if(a[j]<a[li])
  7. li=j;//不断确定最小值位置
  8. }
  9. //置换
  10. int minv = a[li];
  11. a[li] = a[i];
  12. a[i]=minv;
  13. }
  14. return a;
  15. }

发表评论

表情:
评论列表 (有 0 条评论,267人围观)

还没有评论,来说两句吧...

相关阅读

    相关 一头算法导论-冒泡排序

    定义:交换排序的基本思想是,通过比较两个记录键值的大小,如果这两个记录键值的大小出现逆序,则交换这两个记录,这样将键值较小的记录向序列前部移动,键值较大的记录向序列后部移动。假

    相关 一头算法导论-插入排序

    定义:直接插入排序是一种简单的排序方法,她的基本思想是依次将每个记录插入到一个已排好序的有序表中去,从而得到一个新的、记录数增加1的有序表,就好比斗地主抓牌排序的这么一个过程