java数组排序(插入排序、冒泡排序、选择排序)与递归 代码示例
import java.util.Scanner;
public class OrderBy {
public static void main(String[] args) {
// Scanner scan = new Scanner(System.in);
// System.out.println("1到n的和,请输入n···");
// int i = scan.nextInt();
System.out.println(fun(100));//递归
int[] aArray = {7,5,3,8,2,9,1,4,6};//目标数组
orderBy1(aArray);//选择排序
orderBy2(aArray);//冒泡排序
orderBy3(aArray);//插入排序
}
/**
* 递归
* @param i
* @return
*/
private static int fun(int i){
if(i==1){
return 1;//递归基数(1到1的和为1)
}
else{
int sum = i+fun(i-1);//i加1到(i-1)的和
/**
* 其中fun(i-1) = (i-1)+fun(i-2),以此类推
*/
return sum;
}
}
/**
* 排序1
* 选择
*/
private static void orderBy1(int[] aArray){
for(int i=0;i<aArray.length;i++){
int var=aArray[i];//每次初值为第一位
for(int j=i;j<aArray.length;j++){//从索引i开始
var = var<aArray[j]?var:aArray[j];//三元取较小值
}
for(int j=i;j<aArray.length;j++){//从索引i开始让最小值和i为互换位置
if(aArray[j]==var){
aArray[j]=aArray[i];
aArray[i]=var;
}
}
}
for(int m:aArray){//for each遍历新数组
System.out.print(m+"\t");
}
System.out.println();
}
/**
* 排序2
* 冒泡
*/
private static void orderBy2(int[] arr){
for(int i=0;i<arr.length-1;i++){
int var = arr[i];
if(var>arr[i+1]){//互换位置,小的排前面
arr[i] = arr[i+1];
arr[i+1] = var;
i=-1;//重新遍历
}
}
for(int m:arr){
System.out.print(m+"\t");
}
System.out.println();
}
/**
* 排序3
* 插入
*/
private static void orderBy3(int[] arr){
for(int i=1;i<arr.length;i++){//遍历
//逐个与排完序部分比较,第一次遇到比之大的数时则插入该数的位置,将后面部分往后挤
int var = arr[i];
No1:for(int j=0;j<i;j++){
if(var<arr[j]){
for(int m=i;m>=j;m--){//j到i之间的元素后移1位
if(m>j){
arr[m]=arr[m-1];//j之后i之前的元素后移一位
}else{
arr[j]=var;//把var插入到j索引处
}
}
break No1;//遇到第一个比var大的数,排完序后结束比较
}
}
}
for(int n:arr){
System.out.print(n+"\t");
}
System.out.println();
}
}
结果:

java数组排序(插入排序、冒泡排序、选择排序)与递归 代码示例的更多相关文章
- C# 插入排序 冒泡排序 选择排序 高速排序 堆排序 归并排序 基数排序 希尔排序
C# 插入排序 冒泡排序 选择排序 高速排序 堆排序 归并排序 基数排序 希尔排序 以下列出了数据结构与算法的八种基本排序:插入排序 冒泡排序 选择排序 高速排序 堆排序 归并排序 基数排序 希尔排序 ...
- 算法 排序lowB三人组 冒泡排序 选择排序 插入排序
参考博客:基于python的七种经典排序算法 [经典排序算法][集锦] 经典排序算法及python实现 首先明确,算法的实质 是 列表排序.具体就是操作的列表,将无序列表变成有序列表! 一 ...
- 学习C#之旅 冒泡排序,选择排序,插入排序,希尔排序[资料收集]
关于冒泡排序,选择排序,插入排序,希尔排序[资料收集] 以下资料来源与网络 冒泡排序:从后到前(或者从前到后)相邻的两个两两进行比较,不满足要求就位置进行交换,一轮下来选择出一个最小(或最大)的放到 ...
- python算法(一)基本知识&冒泡排序&选择排序&插入排序
本节内容: 算法基本知识 冒泡排序 选择排序 插入排序 1. 算法基本知识 1.1 什么是算法? 算法(algorithm):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为 ...
- 归并排序 & 计数排序 & 基数排序 & 冒泡排序 & 选择排序 ----> 内部排序性能比较
2.3 归并排序 接口定义: int merge(void* data, int esize, int lpos, int dpos, int rpos, int (*compare)(const v ...
- C语言实现 冒泡排序 选择排序 希尔排序
// 冒泡排序 // 选择排序 // 希尔排序 // 快速排序 // 递归排序 // 堆排序 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h& ...
- Python排序算法之选择排序定义与用法示例
Python排序算法之选择排序定义与用法示例 这篇文章主要介绍了Python排序算法之选择排序定义与用法,简单描述了选择排序的功能.原理,并结合实例形式分析了Python定义与使用选择排序的相关操作技 ...
- Python实现各种排序算法的代码示例总结
Python实现各种排序算法的代码示例总结 作者:Donald Knuth 字体:[增加 减小] 类型:转载 时间:2015-12-11我要评论 这篇文章主要介绍了Python实现各种排序算法的代码示 ...
- 019 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 13 数据类型转换的代码示例
019 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 13 数据类型转换的代码示例 本文知识点:Java中的数据类型转换案例 学习视频有误,导致没法写文,文章内容 ...
随机推荐
- Python爬虫有道翻译接口
import urllib.request import urllib.parse import json import hashlib from datetime import datetime i ...
- [CodeForces - 447C] C - DZY Loves Sequences
C - DZY Loves Sequences DZY has a sequence a, consisting of n integers. We'll call a sequence ai, ai ...
- Python3+telnetlib实现telnet客户端
一.程序要点说明 python实现telnet客户端的六个关键问题及其答案是: 使用什么库实现telnet客户端----telnetlib 怎么连接主机----两种方法,一种是在实例化时传入ip地址连 ...
- Kali配置教程
1.配置软件源 所有操作没有说明,都是以root身份执行. 打开一个终端执行: cat >> /etc/apt/sources.list <<EOF deb http://mi ...
- shiro过滤器解释类
anon -- org.apache.shiro.web.filter.authc.AnonymousFilter authc -- org.apache.shiro.web.filter.authc ...
- linux命令--文件查询
ls [ -lahid ] [ /* ] ls -- 默认查询当前目录下的显性文件 -l -- 显示文件的详细信息 -a -- 显示所有文件(包括隐藏文件) -h -- 文件大小显示为 ...
- 动手动脑(Java)
1.仔细阅读示例: EnumTest.java,运行它,分析运行结果? 你能得到什么结论?你掌握了枚举类型的基本用法了吗? 答: public class EnumTest { public stat ...
- vue-router-6-命名视图
//展示多个视图<router-view class="view one"></router-view> <router-view class=&qu ...
- byte[]->new String(byte[]) -> getByte()引发的不一致问题
今天接短信接口,短信接口提供了sdk,我们可以直接用sdk发送请求然后发送对应短信. 但是想使用我们平台自定义的httpUtil实现. 然而忙了1天半,才解决这个问题,还是我同事帮忙找出问题并解决的. ...
- bootstrap --- 在 modal中的 datetimepicker 关闭 ,会造成 modal也会被关闭.
这个大概是事件冒泡造成的. 解决办法: <form id="userForm" class="form-horizontal"> <input ...