• JAVA实现--基础算法FOR选择排序


    首先 实现简单的选择排序。

    简单排序的思路很简单,就是通过遍历(数组的length次)的数组,每次遍历找出最小的放到数组的第一个位置,下次遍历时就不用考虑第0位置的数从第1的位置开始找1到length中最小的数。。。

    实现最简单的选择排序

     1    //实现选择排序的方法
     2     public static int[] selSort(int[] arr){
     3         //先遍历数组
     4         for(int i = 0;i < arr.length;i++){
     5             //在每次遍历时进行比较
     6             for(int j = i;j < arr.length;j++){
     7                 //如果有元素大于后面的元素进行交换
     8                 if(arr[i] > arr[j]){
     9                     int temp = arr[i];
    10                     arr[i] = arr[j];
    11                     arr[j] = temp;
    12                 }
    13             }
    14         }
    15         //将排序后的结果返回
    16         return arr;
    17     }

    对选择排序进行优化,在这个排序中,每次找到比原数小的数就需要进行交换这样会造成资源的浪费,我们可以先保存(当前)第一位数字,用它和其它数去比较,找到最大(或者小)的那个数的下标,在循环执行完毕后看这个数字是不是被交换过,如果交换过那就交换下标对应的数值。

     1     public static int[] selSort2(int[] arr){
     2         //依旧先进行遍历
     3         for(int i = 0;i < arr.length;i++){
     4             //在每次遍历时保存当前位置的下标
     5             int index = i;
     6             //在每次遍历时进行比较
     7             for(int j = i;j < arr.length;j++){
     8                 //这里必须时index 而不是 i ,因为index可以改,i不能改变
     9                 if(arr[index] > arr[j])
    10                     index = j;
    11             }
    12             //如果进行过交换那么 就交换它们的值
    13             if(index != i){
    14                 int temp = arr[i];
    15                 arr[i] = arr[index];
    16                 arr[index] = temp;
    17             }
    18         }
    19         //将交换后的结果返回
    20         return arr;
    21 }
  • 相关阅读:
    xftp,winscp显示隐藏文件
    今日校园-打卡
    dungeon quest(又名暗黑遗迹,勇闯地下城等)装备体系简述
    frp转发
    虚拟机win10添加新磁盘
    JEECG(一) 如何配置自己的业务包
    C# 获取Url 请求方式 域名 端口 路径
    js url 参数 转换成 json 对象数据
    VisualStudio2017 远程 调试 IIS 服务器 web网站
    c# MVC Action 如何知道 发送方给你的 Json 数据的格式内容是什么
  • 原文地址:https://www.cnblogs.com/zhangruifeng/p/9334169.html
Copyright © 2020-2023  润新知