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数组排序的思想,过程和代码实现。多种数组排序的方法,主要有冒泡排序,堆排序,插入排序, 归并操作(merge), 归并操作(merge),选择排序,希尔排序。
java中数组的自定义排序,种类繁多,简单实现,可自由操控。
java 部分数组递增排序 java 部分数组递增排序 java 部分数组递增排序
java 数组递增排序 java 数组递增排序 java 数组递增排序
题目: 假定本学期某班上有5门课,该班上有10人 (1) 请输入该班同学的学号,姓名,5门课的成绩至数组A、B中,再按5门课的总分排序,然后列出排序后的序号,学号,姓名,成绩1~5; (2) 求出5门课的平均成绩
JAVA\数组排序,JAVA语言实现随机数的输入以及数组的排序。JAVA 随机数 数组排序
Java数组排序:冒泡排序、选择排序 、插入排序 、快速排序、希尔排序、堆排序和归并排序 三种Java数组复制方法 Java数组最大最小值 四种合并Java数组方法 Java数组升降序排序 Java数组查找:二分查找、顺序查找、...
5.0教程Java5.0数组排序,个人觉得蛮好的!
java实现数组从小到大排序,输出为数组。可以直接拿来用,注释清楚,可读性强,适用于基础练习,课堂作业等
本文实例讲述了Java编程实现中英混合字符串数组按首字母排序的方法。分享给大家供大家参考,具体如下: 在Java中对于字符串数组的排序,我们可以使用Arrays.sort(String[])方法很便捷的进行排序。例如: String[]...
java数组排序经典之一,选择法,效率很高的一种排序方法,内部实现二分搜索法。
1.插入排序(直接插入排序、折半插入排序、希尔排序); 2.交换排序(冒泡泡排序、快速排序); 3.选择排序(直接选择排序、堆排序); 4.归并排序;5.基数排序。
主要介绍了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数组排序经典之一,冒泡法,最基础也最容易理解的一种排序方法
这份资源提供了Java数组排序的全面指南。该文档涵盖了数组排序的基本概念,包括如何实现各种排序算法,如冒泡排序、选择排序、插入排序、归并排序和快速排序。此外,文档还为每个排序算法提供了详细的代码示例和实现...