选择排序

 


选择排序思想:

选择排序(select sorting) 也是一种简单的排序方法。它的基本思想是:第一次从arr[0]^ arr[n-1]中选取最小值,与arr[0]交换,第二次从arr[1]* ararrln-1]中选取最小值,与arr[1]交换,第三决从arr[2] arr[n-1]中选取最小值,与arr[2]交换,第i次从arr[i-1]^ arr[n-1]中选取最小值,与arr[i-1]交换,第n-1次从arr[n-2]^ arr[n-1]中选取最小值,与arr[n-2]交换,总共通过n-1次,得到一个按排序码从小到大排列的有序序列。

思路:

 

 

代码实现(普通方法与打擂台算法):

复制代码
import java.util.Arrays;
public class Test02_选择排序 {
    public static void main(String[] args) {
        int[] arr = {3,1,6,2,5};
        Sort(arr);
        //SelectSort(arr);
        System.out.println("数组排序后的结果为:"+Arrays.toString(arr));
    }
    //普通方法实现选择排序
    public static void Sort(int[] arr){
        for (int i=0;i<arr.length;i++){
            for (int j=i+1;j<arr.length;j++){
                if (arr[i] > arr[j]){
                    //交换位置
                    int temp;
                    temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                }
            }
        }
    }
    //打擂台实现选择排序
    public static void SelectSort(int[] arr){
        for (int i=0;i<arr.length-1;i++){
            int maxIndex = i;//假设第一个元素是擂主
            for (int j=i+1;j<arr.length;j++){//j+1是因为从第二个元素开始比较,因为第个值默认是最大
                if(arr[j] > arr[maxIndex]){
                    maxIndex = j;//擂主易主
                }
            }
            if ( maxIndex != i ){//如果擂主不是先前的
                int temp;
                temp = arr[i];
                arr[i] = arr[maxIndex];
                arr[maxIndex] = temp;
            }
        }
    }
}
复制代码

 

posted @   Java小白的搬砖路  阅读(177)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话

喜欢请打赏

扫描二维码打赏

支付宝打赏

点击右上角即可分享
微信分享提示