• JAVA-基础-图解 选择排序


    选择排序:

        代码逻辑:

      

     1 package cn.lk;
     2 
     3 public class Demo01 {
     4     public static void main(String[] args) {
     5         
     6         int a[]={1,58,62,45,874,12,496,152,123,-5,-45,-9};
     7         
     8         
     9         
    10         
    11 
    12         //--选择排序法
    13         //--第一层for循环表示现在正在选择的下标元素,i等于几,就是选择的哪个元素
    14         for(int i=0;i<a.length;i++){
    15             //-用一个临时变量tmp1先将当前选择的元素下标存起来
    16                 int tmp1=i;
    17                 //--第二层for循环表示:选出一个比第一层循环选出的元素下标大一的另一个元素,即在第二层循环中选出第二个元素与第一层所选出的元素进行大小比较
    18                 for(int j=i+1;j<a.length;j++){
    19                     if(a[j]>a[tmp1])//-符号设置升序或者降序
    20                         
    21                         tmp1 = j;        //-如果符合条件,将第二循环选出的元素的下标给临时变量tmp1,之前tmp1里存的下标不要了。
    22                 }
    23                 //--注意!,以下的代码是第一层for循环的代码,也就是说,第一层for循环选中一个元素后,一直是第二层for循环选中的元素在变,直到和第二层选择的元素全部比完,确定了没有元素比第一层循环选择的元素大(或小)了,才开始排序
    24             int tmp2;                    //-定义第二个临时变量tmp2
    25             tmp2 = a[i];                //-将第一层for循环选中的元素赋值给临时变量tmp2
    26             a[i] = a[tmp1];                //-将经过比较符合条件的元素再赋值给第一层循环选中的元素
    27             a[tmp1] = tmp2;                //-最后实现了将比较中较大的元素与第一层for循环选中的元素互换
    28             
    29         }
    30         for (int i : a) {
    31             System.out.println(i);
    32         }
    33         
    34         
    35     
    36     }
    37 }

            

        代码实现:

          

     1             int nums [] = {1,34,56,8,-32,7,-9,0,235};
     2             for(int i=0;i<nums.length;i++){
     3                     int tmp = i;
     4                     for(int j=i+1;j<nums.length;j++){
     5                             if(nums[j]<nums[tmp]){
     6                                     tmp = j;
     7                             }
     8                     }
     9                     //换 tmp 和 i 指向的数
    10                     int x = nums[tmp];
    11                     nums[tmp] = nums[i];
    12                     nums[i] = x;
    13             }
    14             for(int x : nums){
    15                     System.out.println(x);
    16             }
  • 相关阅读:
    Python实现以不同分辨率分类视频
    JPA 的增删改查方法
    JPA 中 find() 和 getReference() 的区别
    (三)JPA工具类
    (二)JPA实体类主键生成策略
    (一)配置JPA的开发环境
    自定义视图和自定义视图解析器
    view-controller
    RedirectAttributes 的使用
    SpringMVC视图解析中的 forward: 与 redirect: 前缀
  • 原文地址:https://www.cnblogs.com/xiaoluohao/p/11305362.html
Copyright © 2020-2023  润新知