加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

3种排序算法

发布时间:2020-12-15 01:56:19 所属栏目:Java 来源:网络整理
导读:package java_xuexi; public class xx5 { public static void main(String[] args) { // exe1(); //exe2(); exe3(); } public static void exe1() { /** * 冒泡排序(稳定排序算法) * 比较相邻两个元素,如果前面的大于后面的就交换位置 */ int num[] = { 3,6

package java_xuexi;

public class xx5 {
public static void main(String[] args) {
// exe1();
//exe2();
exe3();

}

public static void exe1() {
/**
* 冒泡排序(稳定排序算法)
* 比较相邻两个元素,如果前面的大于后面的就交换位置
*/
int num[] = { 3,6,4,15,5,9 };// 定义一个乱序数列
int len = num.length;
for (int i = 0; i < len - 1; i++) {//控制比较轮数
for (int j = 0; j < len - 1 - i; j++) {
if (num[j] > num[j + 1]) {// 交换位置
num[j] = num[j] + num[j + 1];
num[j + 1] = num[j] - num[j + 1];
num[j] = num[j] - num[j + 1];
}
}
}
for (int n : num) {// 输出结果
System.out.println(n);
}
}

public static void exe2() {
/**
* 选择排序(不稳定排序算法)
* 每一趟从待排序数组中选出最小或最大的元素,顺序放在已排好序的数列后面
*/
int num[] = { 3,2,12,7,9 };
int minIndex = 0;// 用于记录每次比较的最小值的下标
for (int i = 0; i < num.length - 1; i++) {//控制比较轮数
minIndex = i;// 每轮假设一个最小值下标
for (int j = i + 1; j < num.length; j++) {
if (num[minIndex] > num[j]) {
minIndex = j;
}
}
if (minIndex != i) {// 交换位置
num[minIndex] = num[minIndex] + num[i];
num[i] = num[minIndex] - num[i];
num[minIndex] = num[minIndex] - num[i];
}
}
for (int n : num) {// 输出结果
System.out.println(n);
}
}
public static void exe3() {
/**
* 插入排序
*/
int num[]={4,3,9};
for(int i=1;i<num.length;i++){ //控制比较轮数
int temp=num[i]; //记录操作数
int j=0;
for(j=i-1;j>=0;j--){
if(num[j]>temp){
num[j+1]=num[j];
}else{
break;
}
}
if(num[j+1]!=temp){
num[j+1]=temp;
}
}
for(int n:num){ //输出结果
System.out.println(n);
}
}
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读