A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


/*
规律:相邻元素比较,如果符合条件换位。
第一圈后最大的元素跑到了最右边,第一圈总共有数组的长度-1个元素参与比较
第二圈比较时少了一个元素参与比较,次大的出现在倒数第二的位置
一次类推,共需要比较数组长度length-1次!

代码实现:
*/
package com.itheima.sh.demo;

public class BubbleSort{
public static void main(String [] args){
     int []arr = {2,8,5,7,14,6};
     System.out.println("排序之前:");
     printArray(arr);
     bubbleSort(arr);
     System.out.println("排序之后:");
     printArray(arr);
   
         
}     //定义功能:冒泡排序
     public static void bubbleSort(int []arr){
          for(int i=0;i<arr.length-1;i++){
                    for(int j =0;j<arr.length-i-1;j++){//-i让每次参与的元素少一个;-1避免角标越界
                        //相邻元素比较
                         if(arr[j]>arr[j+1]){
                         int temp = arr[j];
                         arr[j]  = arr[j+1];
                         arr[j+1] = temp;
                      }
               }
     }
     }          //定义功能,打印数组
               public static void printArray(int [] arr){
                  for(int i =0;i<=arr.length-1;i++){
               System.out.print("arr["+i+"]="+arr+"\t");
          }
                  System.out.println();
     }
}
2,选择排序


/*
规律:第一圈0角标位上的值依次和后面的元素比较,第一圈结束时最小值出现在最左边;比较的次数数数组的长度-1(按照正序排列)
         第二圈1角标位上的值依次和后面元素比较,第二圈结束时,第二小的元素出现在1角标位置上。
          。。。。。。
代码实现:
*/
package com.itheima.sh.demo;

public class SelectSortDemo {

     public static void main(String[] args) {
          // 定义一个整形数组、
          int [] arr  = {9,6,4,1,8,7};
         
          System.out.println("排序之前:");
          printArray(arr);
          selectSort(arr);
          System.out.println("排序之后:");
          printArray(arr);
     }
     //定义功能
     public static void selectSort(int []arr){
          for (int i = 0; i < arr.length; i++) {
               //j =i+1保证每次循环开始,第一个元素都会和下一个元素比较,而不是和自己比较
               for (int j =i+ 1; j < arr.length; j++) {
                    if (arr>arr[j]) {
                         int temp =arr;
                         arr = arr[j];
                         arr[j] = temp;
                    }
               }
          }
     }
     //定义打印功能
     public static void printArray(int [] arr){
         for(int i =0;i<=arr.length-1;i++){
      System.out.print("arr["+i+"]="+arr+"\t");
       }
         System.out.println();
}

}

评分

参与人数 1技术分 +1 收起 理由
洋葱头头 + 1

查看全部评分

10 个回复

倒序浏览
老毕的视频里面有很详尽的讲解,总结出来随时都可以查阅,很赞!
回复 使用道具 举报
学习了,还是很详细的!
回复 使用道具 举报
不错,记录下可以方便以后查阅
回复 使用道具 举报
经典的问题记录下,这样的方法不错,值得借鉴
回复 使用道具 举报
多谢分享
回复 使用道具 举报
我的赶紧学了, 搞得现在有的东西看不懂了
回复 使用道具 举报
学习学习
回复 使用道具 举报
有图有总结有代码,很不错哦,加油
回复 使用道具 举报
挺好的资料。学习下。。。。。
回复 使用道具 举报
吓的我赶紧学习了一下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马