zoukankan      html  css  js  c++  java
  • 数组排序(选择排序和冒泡排序)

    1、-------寄语

        对于初学JAVA的同学来说,排序是在陌生不过的一个基础题了。但是由于自己刚刚步入学习JAVA的世界,很多东西不能很好的理解,导致自己虽然可以敲出代码或者大致能够想明白,

        但是对于解决问题的思想并没有很好的深入。(其实一开始学习也没必要太刨根问底,等到自己有一定的基础了,有时间了再研究一下。抱着研究的态度感觉会更好一点。其实大部分目前的

        开发者都是经过了一段时间的培训,在培训的过程中,课程速度特别快,有时候我们必须要“不拘小节”,掌握培训中的主流知识才是明智之举。如果你正在培训,请记住,抓住学习主线。)

    2、-------分析+代码

       目前对于数组的排序有主要的两种,一种是选择排序,一种是冒泡排序。当然大学学过数据结构的知道,还有一些其他的排序,这里就不说明了,有时间自己上网查查。其实排序在开发中并不常用,

       我们学习它是学一种思想,以后的业务逻辑中可能会用到,可能会有相似的逻辑或者培养了我们这种思想,我们今后可以举一反三。不要为了题目而题目,说了一些题外话,不好意思,言归正传。

       (1)选择排序(从小到大)

             1)思想:选择排序,让数组中的每一个数,依次与后面的数进行比较,如果前面的数大于后面的数,就进行位置的交换。这种说法或许有些人看不明白。换个说法,选择排序:第一个数依次与

                      后面的数比较,第一次比较完之后最小的数在最前面 。

              不理解的看看图应该就差不多了,真不明白就和明白的人讨论讨论吧。

                  

             2)代码

                     import java.util.Arrays;
                     /**
                      * 练习排序-选择排序
                      * @author Administrator
                      *
                      */
                     public class Dome2 {
                                public static void main(String[] args) {
                                     //数组
                                     int[] arr = {5,3,7,2,6,7,6,5,4,1,9,8};
                                    //第一次循环,是确定一个数依次和后面数的比较的数。
                                    for (int i = 0; i < arr.length -1 ; i++) {
                                       //这个是和第一个数的比较的数
                                        for (int j = i+1; j < arr.length; j++) {
                                          //定义一个临时的变量,用来交换变量
                                           int temp ;  
                                           if(arr[i]>arr[j]){
                                                temp =  arr[i];
                                                arr[i] = arr[j];
                                                arr[j] = temp;
                                           }
                                       }
                                    }
                            //打印最后的排序结果
                            System.out.println(Arrays.toString(arr));
                             }
                    }

      (2)冒泡排序(从小到大)    

             1)思想:相邻两个数进行比较,第一波比较后,最大的数在最后。(每比较完之后,后面的数就减少一个比较 )

                    

             2)代码

                import java.util.Arrays;
               /**
                * 练习排序--冒泡排序
                * @author Administrator
                *
                */
                  public class Dome2 {
                        public static void main(String[] args) {
                           //数组
                           int[] arr = {5,3,7,2,6,7,6,5,4,1,9,8};
                           //外部循环
                           for(int i=0;i<arr.length-1;i++){
                                //相连两个数的索引是利用内部循环
                                for(int index=0;index<arr.length-1;index++){
                                //同样利用中间变量,注意区分与选择排序的区分
                                     if(arr[index]>arr[index+1]){
                                         int temp=arr[index];
                                         arr[index]=arr[index+1];
                                         arr[index+1]=temp;
                                    }
                               }
                           }
                            System.out.println(Arrays.toString(arr));
                     }
                 }

                

  • 相关阅读:
    NSURLConnection、NSURLSession
    引用自定义的framework
    iOS开发笔记
    NSFileManager文件管理
    SandBox+NSBundle
    CoreData基础
    SQLite3
    iOS中常见的设计模式——单例模式委托模式观察者模式MVC模式
    Runtime机制之结构体及操作函数
    数据结构之链表
  • 原文地址:https://www.cnblogs.com/taotingkai/p/6214367.html
Copyright © 2011-2022 走看看