算法3-排序-简单选择排序

本文深入讲解选择排序算法的基本思想及实现过程,通过示例详细解释如何通过选择最小元素并与其位置上的元素交换来逐步构建有序序列。选择排序与冒泡排序相比,减少了不必要的元素交换,提高了效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本思想:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;

然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。

选择排序的思想其实和冒泡排序有点类似,都是在一次排序后把最小的元素放到最前面。但是过程不同,冒泡排序是通过相邻的比较和交换。而选择排序是通过对整体的选择。举个栗子,对5,3,8,6,4这个无序序列进行简单选择排序,首先要选择5以外的最小数来和5交换,也就是选择3和5交换,一次排序后就变成了3,5,8,6,4.对剩下的序列一次进行选择和交换,最终就会得到一个有序序列。其实选择排序可以看成冒泡排序的优化,因为其目的相同,只是选择排序只有在确定了最小数的前提下才进行交换,大大减少了交换的次数。选择排序的时间复杂度为O(n^2)

publicclass selectSort {  
  
    public selectSort(){  
  
       int a[]={1,54,6,3,78,34,12,45};  
  
       int position=0;  
  
       for(int i=0;i<a.length;i++){  
  
             
  
           int j=i+1;  
  
           position=i;  
  
           int temp=a[i];  
  
           for(;j<a.length;j++){  
  
           if(a[j]<temp){  
  
              temp=a[j];  
  
              position=j;  
  
           }  
  
           }  
  
           a[position]=a[i];  
  
           a[i]=temp;  
  
       }  
  
       for(int i=0;i<a.length;i++)  
  
           System.out.println(a[i]);  
  
    }  
  
}  

  

转载于:https://www.cnblogs.com/yk123/p/8303846.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值