插入排序用java写,java中如何排序

本文目录一览:

基础的~java直接插入排序 求大虾指点~~~= =

说几个我认为错误的地方吧:

1、你不是double数组吗? 怎么用 int 来取值呢? ” int m=n[i];//代码1″

2、代码3,4怎么都是给n[j] 赋值呢? 赋值两次?

3、”n[j]=n[0];//代码4″ 这个是什么意思?

Java编程:简化的插入排序?

代码:(如果输入必须是有序数组,不然方法内要先排序)

结果:

java插入排序算法

import java.util.Arrays;

public class Insert {

public static void main(String[] args) {

int[] ary={8,3,7,1,9,4};

selectionSort(ary);

System.out.println(Arrays.toString(ary));

}

public static void selectionSort(int[] ary) {

int i,j,t;

for(i=1;iary.length;i++){

t=ary[i];

for(j=i-1;j=0tary[j];j–){

ary[j+1]=ary[j];

}ary[j+1]=t;

}

}

}

插入算法的原理是当要被插入的数比数组中元素小就放在他的前面,加了一个中间变量t,把数组元素先放那存着。如果成功插入就把插入数据放到对应的数组位置。然后下一个继续先放在t里面存着。直到最后一个数

java 插入排序 ,下面是一些代码,请大师写下剩下的代码 实现一下插入排序。

因为是要人为在控制台输入数字来排序,所以对于程序来说如果不设定一个值可以中断程序,那程序将无终止的,那 if( str.equals(“x”) )break; 这个就代表当用户在控制台输入 x 后,程序就停止了,不用再输入了。

插入法如下:(其中一部分) insert(arr,p,count); 这地方起码要把插入地方传进参数吧

int []arr = new int[25];

Scanner scan = new Scanner(System.in);

int count=0;

String aa=””;

while(count 25){

aa =scan.next();

if(aa.equals(“x”)){

break;

}

int p = Integer.parseInt(aa); //注意转换异常

insert(arr,p,count);

count++;

}

for(int i=0;iarr.length;i++){

System.out.println(“arr[“+i+”]== “+arr[i]);

}

}

public static void insert(int[] a,int num,int count){

a[count] =num;

if(a !=null){

for(int i=1;ia.length;i++){

int temp = a[i],j=i;

if(a[j-1] temp){

while(j=1 a[j-1]temp){

a[j]=a[j-1];

j–;

}

}

a[j]=temp;

}

}

}

Java 直接插入排序法

比如数组[3,2,1,5]

这段处理就返回[1,2,3,5]

它的处理是从第二位开始依次跟前边的比,比前边的小就往前移动。

也就是[3,2,1,5]

[2,3,1,5]

[1,2,3,5]

(int j = i – 1; j = 0 temp array[j]; j–)

i是这次处理的下标,第一次是1,第二次是2,第三次是3,对应上边原数组里的2,1,5

处理开始时把下标i对应的值存在temp里,j表示的是i前边的下标,temp array[j]的时候说明i下标的值比前边的小,所以把小的值拿到前边去。

这么看是很抽象的,自己在本上写的数组,画一下处理过程会更有助于你理解。

JAVA实现插入排序

public class Test {

public static void main(String[] args) {

int[] source = { 1, 3, 2, 5, 12, 3, 123, 23, 2, 541, 1, 76, 76 };

Test test = new Test();

test.printArray(source);

test.insertSort(source);

test.printArray(source);

}

public void insertSort(int[] source) {

for (int i = 1; i source.length; i++) {

for (int j = i; (j 0) (source[j] source[j – 1]); j–) {

swap(source, j, j – 1);

}

}

printArray(source);// 输出插入排序后的数组值

}

private void swap(int[] source, int x, int y) {

int temp = source[x];

source[x] = source[y];

source[y] = temp;

}

public void printArray(int[] source) {

for (int i : source) {

System.out.print(i + ” “);

}

System.out.println();

}

}

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/306563.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2025-01-02 12:01
下一篇 2025-01-02 12:01

相关推荐

  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • Java Bean加载过程

    Java Bean加载过程涉及到类加载器、反射机制和Java虚拟机的执行过程。在本文中,将从这三个方面详细阐述Java Bean加载的过程。 一、类加载器 类加载器是Java虚拟机…

    编程 2025-04-29
  • Java腾讯云音视频对接

    本文旨在从多个方面详细阐述Java腾讯云音视频对接,提供完整的代码示例。 一、腾讯云音视频介绍 腾讯云音视频服务(Cloud Tencent Real-Time Communica…

    编程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介绍

    本文将详细介绍Java Milvus SearchParam withoutFields的相关知识和用法。 一、什么是Java Milvus SearchParam without…

    编程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java语言中的一个版本,于2014年3月18日发布。本文将从多个方面对Java 8中某一周的周一进行详细的阐述。 一、数组处理 Java 8新特性之一是Stream…

    编程 2025-04-29
  • Java判断字符串是否存在多个

    本文将从以下几个方面详细阐述如何使用Java判断一个字符串中是否存在多个指定字符: 一、字符串遍历 字符串是Java编程中非常重要的一种数据类型。要判断字符串中是否存在多个指定字符…

    编程 2025-04-29
  • VSCode为什么无法运行Java

    解答:VSCode无法运行Java是因为默认情况下,VSCode并没有集成Java运行环境,需要手动添加Java运行环境或安装相关插件才能实现Java代码的编写、调试和运行。 一、…

    编程 2025-04-29
  • Java任务下发回滚系统的设计与实现

    本文将介绍一个Java任务下发回滚系统的设计与实现。该系统可以用于执行复杂的任务,包括可回滚的任务,及时恢复任务失败前的状态。系统使用Java语言进行开发,可以支持多种类型的任务。…

    编程 2025-04-29
  • Java 8 Group By 会影响排序吗?

    是的,Java 8中的Group By会对排序产生影响。本文将从多个方面探讨Group By对排序的影响。 一、Group By的概述 Group By是SQL中的一种常见操作,它…

    编程 2025-04-29

发表回复

登录后才能评论