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));
                 }
             }

时间: 2024-10-05 09:44:22

JAVA基础-数组的排序(选择排序和冒泡排序),总结精辟!!!的相关文章

Java基础【冒泡、选择排序、二分查找】

冒泡排序的思路就是前一个和后一个进行比较,如果大的就交换位置   大的数字后浮 如   12      8    5     31 第一轮   8   5   12   31 第二轮   5   8    12   31 ........ 代码如下 package com.zuoyan.sort; /** * 冒泡排序 * @author Administrator * */ public class BubbloSortDemo { public static void main(String

JavaScript ,Python,java,Go系列算法之选择排序

常见的内部排序算法有:插入排序.希尔排序.选择排序.冒泡排序.归并排序.快速排序.堆排序.基数排序等.用一张图概括: 选择排序 选择排序是一种简单直观的排序算法,无论什么数据进去都是O(n2) 的时间复杂度.所以用到它的时候,数据规模越小越好.唯一的好处可能就是不占用额外的内存空间了吧.通俗来说就是你们中间谁最小谁就出列,站到队列的最后边,然后继续对着剩余的无序数组说你们中间谁最小谁就出列,站到队列的最后边,一直到最后一个,继续站到最后边,这样数组就有了顺序,从小到大. 1.算法步骤 首先在未排

java结构与算法之选择排序

一 .java结构与算法之选择排序 什么事选择排序:从一组无序数据中选择出中小的的值,将该值与无序区的最左边的的值进行交换. 简单的解释:假设有这样一组数据 12,4,23,5,找到最小值 4 放在最右边,然后找到 5 放在  4 的后面,重复该操作. 选择排序参考代码: public class ChooseSort { int[] array = null; @Test public void testPopSort() { array = new int[5]; array[0] = 45

01. Java的经典排序--选择排序--冒泡排序--折半查找(二分查找)

Java的经典排序--选择排序--冒泡排序--折半查找 选择排序 选择排序 3 2 1 5 8 0 1 3 2 5 8 1 1 2 3 5 8 2 1 2 3 5 8 3 1 2 3 5 8 public static void main(String[] args) { int[] arr={3,2,1,5,8}; selectSort(arr); for(int i = 0 ; i < arr.length ; i ++){ System.out.println(arr[i]) ; } }

算法大神之路----排序(选择排序法)

选择排序法,顾名思义,就是把特定的数据选择出来进行排序. 选择排序法有两种方式 在所有的数据中,当由大到小排序,那么就将最大值放到第一个位置 如果由小到大排序,那么就将最小值放到第一个位置 以由小到大排序举例,当排序时候,扫描整个数据,拿第一个依次与其他做比较,如果其他数据比第一个大,或者相等,那么就不交换,如果其他数据比第一个数小,那么就交换二者的位置,扫描结束后,则从第二个数开始,依次扫描. 方法分析 无论是最坏还是最好情况,甚至是平均情况下,都需要对全部数据进行扫描,找到最大或最小值,因此

[java基础]数组1

[java基础]数组1 1 /** 2 文件路径:G:\JavaByHands\数组 3 文件名称:ArrayTest.java 4 编写时间:2016/6/13 5 编写说明:学习数组的使用方法~~ 6 知识来源:疯狂java讲义 7 */ 8 9 /* 10 数组是用来储存多个数据的一种数据结构~~ 11 一个数据被成为一个数组元素 12 可以通过数组元素的索引来访问数组元素 13 java要求所有的数组元素具有相同的数据类型 14 一旦数组初始化完成,数组在内存中所占的空间将被固定下来,长

Java基础(三)选择结构

Java基础(三)选择结构回顾:1.什么是变量 2.变量三要素 3. ++和--  &&和|| 本章内容1.if选择结构 4种 2.switch 小知识:三元运算符: 条件?“x”:“Y” 条件为真X,条件为假Y 1.掌握if条件的结构①基础if选择结构 if(条件){ //条件成立执行的代码}123****e ②if-else 选择结构(互斥) if(条件){ //条件成立则执行}else{ //条件不成立则执行}12345③多重if选择结构 if(条件1){ }else if(条件2)

java基础数组(带基础排序法)

数组是一种数据结构,用来储存同一类型值的集合 1.数组需要先声明数组类型(即储存的数据类型)如:int [] a;       其中int是数组类型[]代表一维数组a代表数组名. 2.创建数组a:    int [] a = new int[100];   表明创建一个储存100 个整型数的数组没有具体值时默认为0. 也可以直接创建有具体内容的数组: int [] a = {1, 2, 3, 4, 5, 6, 7, 8, 9} ; boolean数组的元素会初始化为false: 对象数组的元素则

【算法拾遗(java描写叙述)】--- 选择排序(直接选择排序、堆排序)

选择排序的基本思想 每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子文件的最后,知道所有记录排序完毕.主要有两种选择排序方法:直接选择排序(或称简单选择排序)和堆排序. 直接选择排序 基本思想 第i趟排序開始时,当前有序区和无序区分别为R[1 -- i-1]和R[i -- n](1 <= i <= n-1),该趟排序则是从当前无序区中选出关键字最小的记录R[k],将它与无序区的第一个记录R[i]交换,使R[1 -- i]和R[i+1 -- n]分别变为新的有序区和新的无序区.