zoukankan      html  css  js  c++  java
  • 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             }
  • 相关阅读:
    hdu 4612 Warm up 双连通缩点+树的直径
    Hadoop-04-HBase全然分布式环境搭建
    java实现的Trie树数据结构
    Sharpui企业版-简单介绍【01】 【QQ群:206378966】
    Apache Mina开发手冊之四
    POJ训练计划1459_Power Network(网络流最大流/Dinic)
    svn+ssh
    Android首席设计师宣称移动概念已死,开发人员应该面向屏幕编写应用而非移动
    连锁快餐企业软件的一些管理
    多进程解决datasnap支持的tcp长连接数量少的问题
  • 原文地址:https://www.cnblogs.com/xiaoluohao/p/11305362.html
Copyright © 2011-2022 走看看