选择排序、插入排序、冒泡排序的编程

本文介绍了三种基本的排序算法——选择排序、插入排序和冒泡排序,并提供了每种算法的Java实现示例。这些排序方法虽简单但实用,有助于加深对算法的理解,并为面试准备提供帮助。

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

排序虽然在应用开发中并用不到多少,而且API中也自带有自己的排序方法,并且效率还非常高。之所以拿出来写,是因为在公司进行笔试的时候经常要用到。下面给出几种常用的排序。包括选择排序、插入排序以及冒泡排序。


package test;


import java.util.Arrays;


/**
 * 选择排序:
 * 排序规则:
 * 1 将数组中的每一个元素和第一个元素比较,如果这个元素小于第一个元素,则交换这两个元素
 * 2 循环第一条规则,找出最小元素,放在第一个位置
 * 3 经过n-1轮比较完成排序
 * @author wkj
 *
 */
public class Selection {


public static void main(String[] args) {
int[] ary = new int[]{5,3,7,8,2};
System.out.println(Arrays.toString(execute(ary)));
}

public static int[] execute(int[] ary){

for(int i=0;i<ary.length-1;i++){
for(int j=i+1 ;j<ary.length;j++){
if(ary[i]>ary[j]){
int temp = ary[i];
ary[i] = ary[j];
ary[j] = temp;
}
}
}

return ary;
}
}


package test;


import java.util.Arrays;


/**
 * 插入排序
 * 排序规则:
 * 1 将数组分成两部分,将后部分的第一个逐一与前部分的第一个元素比较,在合理的位置插入
 * 2 插入排序算法的效率要高于选择排序和冒泡排序
 * @author wkj
 *
 */
public class Insert {
public static void main(String[] args) {
int[] ary = new int[]{5,3,7,8,2};
System.out.println(Arrays.toString(execute(ary)));
}
//TODO 个排序比较难理解
public static int[] execute(int[] ary){
int i,j,t;
for(i=1;i<ary.length;i++){
t = ary[i];
for(j=i-1;j>=0;j--){
if(t<ary[j]){
ary[j+1] = ary[j];
}else{
break;
}
}
ary[j+1] = t;
}

return ary;
}


}


package test;


import java.util.Arrays;


/**
 * 冒泡排序
 * 排序规则:比较相邻的两个元素,将小的的放在前面
 * @author wkj
 *
 */
public class Bubble {


public static void main(String[] args) {
int[] ary = new int[]{5,3,7,8,2};
System.out.println(Arrays.toString(execute(ary)));
}

public static int[] execute(int[] ary){
for(int i = 0;i<ary.length-1;i++){
for(int j = 0;j<ary.length-i-1;j++){
if(ary[j]>ary[j+1]){
int temp = ary[j];
ary[j] = ary[j+1];
ary[j+1] = temp;
}
}
}

return ary;
}

}


这些排序希望能够给在面试中助你一臂之力

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值