java面试常用的两种基本排序方法(选择、冒泡)

本文介绍了两种基本的数组排序方法——选择排序和冒泡排序,并通过实例代码展示了这两种排序方法的具体实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天看了传智博客毕向东老师的视频,让我对这两种数组排序的方法温故而知新。

今天自己写了一遍代码,发上来让更多的人了解一下。

1、选择排序

给定一个数组,int [] shuzu = {5,7,6,8,3,2,9};
选择排序就是让shuzu[0] 与shuzu[1],shuzu[],shuzu[3]……以此去比较,如果前面的一个数比后面的大,那么进行位置的置换。

第一遍的时候已经把最小的数字确定了,并且排序到了第一位。然后以此类推,直到最大也确定了,排序也就完成了。

2、冒泡排序

给定一个数组,int [] shuzu = {5,7,6,8,3,2,9};

冒泡排序就是让shuzu[0]与shuzu[1]进行比较,shuzu[1]与shuzu[2]进行比较,每一个相邻的进行比较,比较到了到第二个数字的时候,最后一个也就比较完成了,当完成第一次循环的时候,最大数字会比较出来。

当第二次循环的时候内循环的次数就会变少,因为最大的已经出来了。遇到后面的数字比前面的数字大的时候进行位置的置换。

一次类推冒泡排序的循环完成。

下面是详细的代码,本人菜鸟,有错误的地方希望指正!

package shuzu;

public class paixun1 {
 
 public static int[] zhihuan(int [] a,int x){
  int temp=0;
  if(a[x]>a[x+1]){
   temp=a[x];
   a[x]=a[x+1];
   a[x+1]=temp;
  }
  return a;
  
 }
 public static int[] zhihuan1(int [] a,int x,int y){
  int temp=0;
  if(a[x]<a[y]){
   temp=a[x];
   a[x]=a[y];
   a[y]=temp;
  }
  return a;
  
 }
 public static void bianli(int[] arr){
  for(int x=0;x<arr.length;x++){
   System.out.println("arr["+x+"]="+arr[x]);

  }
 }

 public static int[] xuanze(int [] arr){

  for(int x=0;x<arr.length;x++){
   for(int y=0;y<arr.length;y++){
   zhihuan1(arr,x,y);
    }
   }
  return arr;
  }
 public static int[] maopao(int [] arr){
  for(int x=0;x<arr.length-1;x++){
   for(int y= 0;y<arr.length-x-1;y++){  //-x 是为了减少循环的次数,-1是为了防止角标越界
    zhihuan(arr,y);
   }
  }
  
  return arr;
 }

 public static void main(String[] args) {
  int [] shuzu = {5,7,6,8,3,2,9};
  //选择排序
  bianli(shuzu);
  System.out.println("————————————————————————————————————————————————————");
  System.out.println("这是选择排序");
  int [] a =xuanze(shuzu);
  bianli(a);
  //冒泡排序
  System.out.println("————————————————————————————————————————————————————");
  System.out.println("这是冒泡排序");
  int [] ab =maopao(shuzu);
  bianli(ab);
  

 }

}

输出打印结果:


arr[0]=5
arr[1]=6
arr[2]=7
arr[3]=8
arr[4]=3
arr[5]=2
arr[6]=9
————————————————————————————————————————————————————
这是选择排序
arr[0]=2
arr[1]=3
arr[2]=5
arr[3]=6
arr[4]=7
arr[5]=8
arr[6]=9
————————————————————————————————————————————————————
这是冒泡排序
arr[0]=2
arr[1]=3
arr[2]=5
arr[3]=6
arr[4]=7
arr[5]=8
arr[6]=9

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值