package date0609;
/**
*@author TonyJ
*@time 2011-6-9 下午05:45:16
*/
public class Test02 {
private long[] a;
private int nElems;
public Test02(int max) {
a = new long[max];
nElems = 0;
}
public int size() {
return nElems;
}
public void add(long data) {
a[nElems++] = data;
}
public int find(long desData) {//二分查找
int low = 0;
int high = nElems - 1;
int cur;
while (true) {
cur = (low + high) / 2;
if (a[cur] == desData) {
return cur;
} else if (low > high) {
return -1;
} else {
if (a[cur] < desData) {
low = cur + 1;
} else {
high = cur - 1;
}
}
}
}
public long get(int index) { //根据下标取得数组的值
if (index > nElems) {
System.out.print("无效下标");
return -1;
} else {
return a[index];
}
}
public boolean delete(long desData) {//删除操作
int j = find(desData);
if (j == -1) {
return false;
} else {
for (int i = j; i < nElems - 1; i++) {
a[i] = a[i + 1];
}
nElems--;
return true;
}
}
public void display() {
for (int i = 0; i < nElems; i++) {
System.out.print(a[i] + ",");
}
System.out.println();
}
public void bubbleSort() {//冒泡排序
for (int i = 1; i < nElems; i++) {
for (int j = 0; j < nElems; j++) {
if (a[i] < a[j]) {
swap(i, j);
}
}
}
}
public void selectSort() {//选择排序
int out, in, min;
for (out = 0; out < nElems - 1; out++) {
min = out;
for (in = out + 1; in < nElems; in++) {
if (a[in] < a[min]) {
min = in;
}
}
swap(out, min);
}
}
public void insertSort() {//插入排序
int out, in;
long temp;
for (out = 1; out < nElems; out++) {
temp = a[out];
in = out;
while (in > 0 && a[in - 1] >= temp) {
a[in] = a[in - 1];
--in;
}
a[in] = temp;
}
}
private void swap(int one, int two) {
long temp;
temp = a[one];
a[one] = a[two];
a[two] = temp;
}
public static void main(String[] args) {
Test02 t = new Test02(6);
t.add(3);
t.add(4);
t.add(5);
t.add(1);
t.add(2);
t.add(6);
t.insertSort();
System.out.println(t.get(4));
System.out.println(t.find(2));
// t.bubbleSort();
// t.selectSort();
t.display();
t.delete(3);
t.display();
}
}
分享到:
相关推荐
以上就是Java中常用的几种数组排序算法及其实现。每种排序算法都有其特定的适用场景和性能特点,理解并掌握这些排序算法有助于我们在实际编程中选择合适的排序方法,提高程序的效率。在实际应用中,还可以考虑使用...
java中数组的自定义排序,种类繁多,简单实现,可自由操控。
本文将深入探讨如何在Java中实现这个功能,结合给出的标签“源码”和“工具”,我们将讨论标准库中的`Comparator`接口和`Collections.sort()`方法,以及自定义比较逻辑。 首先,了解Java中的`Comparable`和`...
在编程领域,数组排序是一个常见的任务,特别是在Java中。这里我们关注的是“部分数组递增排序”,这通常指的是对一个数组中的某一段元素进行升序排列。以下是对这个主题的详细解释。 首先,理解基本概念。数组是...
题目: 假定本学期某班上有5门课,该班上有10人 (1) 请输入该班同学的学号,姓名,5门课的成绩至数组A、B中,再按5门课的总分排序,然后列出排序后的序号,学号,姓名,成绩1~5; (2) 求出5门课的平均成绩
JAVA\数组排序,JAVA语言实现随机数的输入以及数组的排序。JAVA 随机数 数组排序
1. 对基本类型数组排序:在Java 5.0中,`Arrays.sort()`可以直接用于整型、浮点型、字符型以及双精度浮点型等基本类型的数组排序,例如`int[]`、`double[]`、`char[]`等。例如: ```java int[] numbers = {5, 3, 8, ...
在"7-数组与方法(上)"和"8-数组与方法(下)"的文件中,可能详细讲解了数组的使用方法,包括如何定义、初始化、遍历、修改、查找、排序二维数组,以及如何将数组作为方法参数等实践技巧。通过学习这些内容,开发者能够...
Java数组排序:冒泡排序、选择排序 、插入排序 、快速排序、希尔排序、堆排序和归并排序 三种Java数组复制方法 Java数组最大最小值 四种合并Java数组方法 Java数组升降序排序 Java数组查找:二分查找、顺序查找、...
在本篇文章中,我们将深入探讨Java中实现数组递增排序的方法,以及相关的编程知识点。 首先,最常见的数组排序算法是冒泡排序(Bubble Sort)、选择排序(Selection Sort)、插入排序(Insertion Sort)和快速排序...
在Java中,我们可以使用`java.util.PriorityQueue`类来实现优先队列,但这里我们关注的是用数组实现的方法。 2. **数组实现的基本思想** 数组实现优先队列的核心思想是维护一个最小堆(最小堆是堆数据结构的一种,...
本文实例讲述了Java编程实现中英混合字符串数组按首字母排序的方法。分享给大家供大家参考,具体如下: 在Java中对于字符串数组的排序,我们可以使用Arrays.sort(String[])方法很便捷的进行排序。例如: String[]...
java实现数组从小到大排序,输出为数组。可以直接拿来用,注释清楚,可读性强,适用于基础练习,课堂作业等
java数组排序经典之一,选择法,效率很高的一种排序方法,内部实现二分搜索法。
先声明一个数组,这个数组中可能会存在重复的元素,而且顺序也是杂乱的,要求将这个数组中的重复元素排除掉并将新得到的数组进行递增排序
java冒泡排序 代码为排序源代码 简洁明了 无其他
使用冒泡排序实现的java语言编写的关于二维数组的排序,实现了行、列的排序输出。
// 二维数组冒泡排序 public static void main(String[] args) { int i=0, j=0, temp = 0; int[][] nums1 = { { 34, 1, 22, 5 }, { 28, 98, 15, 32 }, { 33, -5, 17, 41 } }; int rows = nums1.length; //二维...
JAVA数组排序经典之一,冒泡法,最基础也最容易理解的一种排序方法