java数组的插入排序

问题描述

publicvoiddirectSort(doublen[]){inti,j;for(i=2;i<n.length;i++){代码1;for(j=i-1;代码2;j--)代码3;代码4=n[0];}}书上给到这里,往下不知道怎么弄了

解决方案

解决方案二:
没看懂.....
解决方案三:
先弄清楚插入排序的原理,这样代码才好写
解决方案四:
你是想了解算法喽。其实我个人觉得没必要把排序方式记个遍,记一个好操作的就行了。我比较喜欢用冒泡排序。可以给你分享一下哦。原理:比如一个数组中有四个元素:33,22,55,44;将数组中最左边的元素和最左边的第二个元素比较,若小于则位置不变,若大于则二者对调位置,一次往后。就相当于水里面的泡泡一样,小泡泡在下面,大泡泡就往上浮。publicclassBubbleSort{publicstaticvoidmain(String[]args){intscore[]={67,69,75,87,89,90,99,100};for(inti=0;i<score.length-1;i++){//最多做n-1趟排序for(intj=0;j<score.length-i-1;j++){//对当前无序区间score[0......length-i-1]进行排序(j的范围很关键,这个范围是在逐步缩小的)if(score[j]<score[j+1]){//把小的值交换到后面inttemp=score[j];score[j]=score[j+1];score[j+1]=temp;}}System.out.print("第"+(i+1)+"次排序结果:");for(inta=0;a<score.length;a++){System.out.print(score[a]+"t");}System.out.println("");}System.out.print("最终排序结果:");for(inta=0;a<score.length;a++){System.out.print(score[a]+"t");}}}

可以参考一下。真的没必要记那么多,实际的开发中也不是经常用,除非开发游戏容易用到逻辑思维和算法。
解决方案五:
所谓插入排序法,就是检查第i个数字,如果在它的左边的数字比它大,进行交换,这个动作一直继续下去,直到这个数字的左边数字比它还要小,就可以停止了。插入排序法主要的回圈有两个变数:i和j,每一次执行这个回圈,就会将第i个数字放到左边恰当的位置去。

时间: 2024-10-26 14:42:04

java数组的插入排序的相关文章

遍历-两个java数组比大小排序

问题描述 两个java数组比大小排序 举个例子,我现在有两个集合数组 A ={32,43,28,3,67,20, 40,0, 59 } B = {3 ,45, 18 ,83 ,30 ,28 ,40,56 ,25} 我要对两个集合数组的大小进行一 一的比较,最后整合到一个大集合数组C中,数字大的排的前面,数字小的在后面,如果AB有数字相同的,那将A组里面的数字排到B前面.求大神帮忙怎么用循环遍历来写这一段代码. 解决方案 上面写成了从小到大排序了,不好意思 public static int[]

关于Java 数组内存分配一点认识

 可能Java 数组大家都很熟悉,最近我遇到了一个关于Java 数组内存分配的问题.         呵呵.突然就发现许多书上"基本数据类型存储在栈内存当中,对象则保存在堆内存"这句话完全是错误的.下面是个简单的例子代码: public class Test { public static void main(String[] argv) { // 静态初始化数组 String[] names = { "Michael", "Orson", &q

关于java数组的深度思考

数组 刚刚开始接触java数组的人都会听到一句类似的话:java是纯面向对象的语言,他的数组也是一个对象.于是乎,笔者就按照一个对象的方式来使用数组,心安理得.直到我接触到C的数组后,才发现将数组作为一个类来使用在实现上是多么的"不自然". 首先我们看一下表面现象,数组创建的时候采用的是如下语句: MyClass[] arr = new MyClass[9]; 而普通类采用的是如下语句: MyClass obj = new MyClass(); 就是说,创建数组的时候不使用小括号传参.

新手入门:Java数组特点及基本使用技巧

技巧|数组 1.关于数组的特点 1)在Java中,无论使用数组或容器,都有边界检查.如果越界操作就会得到一个RuntimeException异常. 2)数组只能保存特定类型.数组可以保存基本类型,容器则不能.容器不以具体的类型来处理对象,它们将所有对象都按Object类型处理. 3)容器类只能保存对象的引用.而数组既可以创建为直接保存基本类型,也可以保存对象的引用.在容器中可以使用包装类,如Integer.Double等来实现保存基本数据类型值. 4)对象数组和基本类型数组在使用上几乎是相同的:

java数组的返回

假定我们现在想写一个方法,同时不希望它仅仅返回一样东西,而是想返回一系列东西.此时,象C和C++这样的语言会使问题复杂化,因为我们不能返回一个数组,只能返回指向数组的一个指针.这样就非常麻烦,因为很难控制数组的"存在时间",它很容易造成内存"漏洞"的出现. Java采用的是类似的方法,但我们能"返回一个数组".当然,此时返回的实际仍是指向数组的指针.但在Java里,我们永远不必担心那个数组的是否可用--只要需要,它就会自动存在.而且垃圾收集器会在

Java数组模拟优先级队列数据结构的实例_java

优先级队列如果我们给每个元素都分配一个数字来标记其优先级,不妨设较小的数字具有较高的优先级,这样我们就可以在一个集合中访问优先级最高的元素并对其进行查找和删除操作了.这样,我们就引入了优先级队列 这种数据结构. 优先级队列(priority queue) 是0个或多个元素的集合,每个元素都有一个优先权,对优先级队列执行的操作有(1)查找(2)插入一个新元素 (3)删除 一般情况下,查找操作用来搜索优先权最大的元素,删除操作用来删除该元素 .对于优先权相同的元素,可按先进先出次序处理或按任意优先权

初学者求解java数组下标越界问题

问题描述 初学者求解java数组下标越界问题 public class Test{ public static void main(String[]args){ System.out.println(args[0]); System.out.println(args[1]); }} doc显示Exception in thread ""main"" java.lang.ArrayIndexOutOfBoundsException:0 at Test.main(Tes

random-关于java数组的问题,想来这边问一下

问题描述 关于java数组的问题,想来这边问一下 首先是这样子的,我们作业时是一个打地鼠的小程序,模拟地鼠出现的样子. 我是先设定一个4x4的数组Array[4][4],数组默认值全部设定为0. 然后设定两个随机变量row和col,范围都在0-3之间 然后把Array[row][col]的值从设定为1,以表示地鼠出现的位置. 那接下来就是我想要问的地方: 如何把出现过的位置舍弃,就是希望接下来随机的row和col不要再重复出现同样的数字? 下面是代码片段 int i = new Random()

java数组 代码优化 我能想到的就是下面的代码(未考虑Arrays类)

问题描述 java数组 代码优化 我能想到的就是下面的代码(未考虑Arrays类) // 定义一个函数,接收一个数组与一个要查找的元素,如果该元素存在数组中,那么返回该元素在数组中的索引值,如果不存在返回-1.(不要严格要求使用二分查找法) import java.util.Scanner; class demo2 { public static void main(String[] args){ int[] index=lookfornum(); for (int i=0;i<index.le