java常见数据算法_插入排序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java常见数据算法_插入排序相关的知识,希望对你有一定的参考价值。
插入排序的核心思想:
抽出一个元素,在其前面的元素中找到适当的位置进行插入。
其参考实现如下:
package com.zcp.ch04;
/**
- @author Administrator
-
冒泡排序的实现
*/
public class InsertArray {//数组
private long[] arr = null;//数组中有效数据的大小
private int elems;
public InsertArray() {
arr = new long[50];
}public InsertArray(int length){
arr = new long[length];
}/**
- 插入数据的操作
- @param value
*/
public void insert(long value){
arr[elems] = value;
elems++;
}
/**
- 查找指定的数据,如果能够查找到则返回数组的坐标,否则返回-1.
- @param value
-
@return
*/
public int find(long value){
int i = 0;
for(i=0;i<elems;i++){
if(value==arr[i])
break;
}if(i >(elems-1)){
return -1;
}return i;
}
/***
- 删除数据的操作,删除成功返回true,删除失败返回false
-
@param value
*/
public boolean delete(long value){int key = find(value);
if(key == -1){
System.out.println("删除数据失败,未查找到要删除的数据");
return false;
}
for (int i = key; i < elems; i++) {
arr[i] = arr[i+1];
}
elems--;
return true;
}
/***
- @param oldValue
- @param newValue
- @return 如果修改成功返回true,修改失败返回false
*/
public boolean changeValue(long oldValue,long newValue){
int key = find(oldValue);
if(key == -1){
System.out.println("需要修改的数据不存在,修改失败");
return false;
}
arr[key] = newValue;
return true;
}
/**
- 插入排序的算法
- 插入一个元素,在其前面的元素中找到适当的位置进行插入
- 分析:从插入排序的定义可以看出,插入一个元素在其前面的元素中找到合适的位置进行插入
-
所以:我们在找这个元素的时候需要从第二个元素开始找(数组的下标为1),然后依次找后面的元素
*/
public void insertSort(){long keyValue = 0;
//这里定义i的目的就是我们需要找的元素的坐标
for (int i = 1; i < elems; i++) {
//获取到我们要查找的一个元素
keyValue = arr[i];
int j = 0;
for (j = i; ((j > 0) && (arr[j-1] > keyValue)); j--) {
//通过里面的判断arr[j-1]>keyValue 的值的时候,将整体右移,空出最左边的位置
arr[j] = arr[j-1];
}
//将选择的数据插入到最左边
arr[j] = keyValue;
}
}
/**
- 该方法主要是变量数组并显示
*/
public void disPlay(){
for (int i = 0; i < elems; i++) {
System.out.print(arr[i]+ " " );
}
System.out.println();
}
}
测试Demo如下:
package com.zcp.ch04;
public class TestInsertMain {
public static void main(String[] args) {
InsertArray bubbleArray = new InsertArray();
bubbleArray.insert(10);
bubbleArray.insert(500);
bubbleArray.insert(80);
bubbleArray.insert(2);
bubbleArray.insert(23);
bubbleArray.disPlay();
bubbleArray.insertSort();;;
System.out.println("选择排序后的数据如下:");
bubbleArray.disPlay();
}
}
以上是关于java常见数据算法_插入排序的主要内容,如果未能解决你的问题,请参考以下文章