
正文
java数据结顺序表代码 java顺序写
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
数据结构,用JAVA编写顺序表
直接用数组或者ArrayList实现相应java数据结顺序表代码的功能,行吗java数据结顺序表代码?Java没有指针,LinkedList无法模拟
相关问答
Q1: 设计一个有序顺序表 数据结构(java)
package array;
class OrderArray{
private long[] a;
private int nElems;
public OrderArray(int maxSize){
a = new long[maxSize];
nElems = 0;
}
public void insert(long value){
int pos = 0;
for(pos=0;posnElems;pos++){
if(a[pos]value){
break;
}
}
for(int i=nElems;ipos;i--){
a[i] = a[i-1];
}
a[pos] = value;
nElems++;
}
public boolean delete(long value){
int pos = find(value);
if(pos!=-1){
for(int i=pos;inElems;i++){
a[i] = a[i+1];
}
nElems --;
return true;
}
return false;
}
public int find(long keySearch){
int lowerBound = 0;
int upperBound = nElems-1;
int curIn = 0;
while(true){
curIn = (lowerBound+upperBound)/2;
if(a[curIn]==keySearch){
return curIn;
}else if(lowerBoundupperBound){
return -1;
}else{
if(a[curIn]keySearch){
upperBound = curIn -1;
}else{
lowerBound = curIn +1;
}
}
}
}
public void display(){
for(int i=0;inElems;i++){
System.out.println(a[i]);
}
}
}
public class OrderArrayApp {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int maxSize = 100;
OrderArray orderArray = new OrderArray(maxSize);
orderArray.insert(1);
orderArray.insert(7);
orderArray.insert(9);
orderArray.insert(8);
orderArray.insert(6);
orderArray.insert(4);
orderArray.display();
orderArray.delete(8);
orderArray.display();
}
}
Q2: Java几种简单的排序源代码
给你介绍4种排序方法及源码,供参考
1.冒泡排序
主要思路: 从前往后依次交换两个相邻的元素,大的交换到后面,这样每次大的数据就到后面,每一次遍历,最大的数据到达最后面,时间复杂度是O(n^2)。
public static void bubbleSort(int[] arr){
for(int i =0; i arr.length - 1; i++){
for(int j=0; j arr.length-1; j++){
if(arr[j] arr[j+1]){
arr[j] = arr[j]^arr[j+1];
arr[j+1] = arr[j]^arr[j+1];
arr[j] = arr[j]^arr[j+1];
}
}
}
}
2.选择排序
主要思路:每次遍历序列,从中选取最小的元素放到最前面,n次选择后,前面就都是最小元素的排列了,时间复杂度是O(n^2)。
public static void selectSort(int[] arr){
for(int i = 0; i arr.length -1; i++){
for(int j = i+1; j arr.length; j++){
if(arr[j] arr[i]){
arr[j] = arr[j]^arr[i];
arr[i] = arr[j]^arr[i];
arr[j] = arr[j]^arr[i];
}
}
}
}
3.插入排序
主要思路:使用了两层嵌套循环,逐个处理待排序的记录。每个记录与前面已经排好序的记录序列进行比较,并将其插入到合适的位置,时间复杂度是O(n^2)。
public static void insertionSort(int[] arr){
int j;
for(int p = 1; p arr.length; p++){
int temp = arr[p]; //保存要插入的数据
//将无序中的数和前面有序的数据相比,将比它大的数,向后移动
for(j=p; j0 temp arr[j-1]; j--){
arr[j] = arr[j-1];
}
//正确的位置设置成保存的数据
arr[j] = temp;
}
}
4.希尔排序
主要思路:用步长分组,每个分组进行插入排序,再慢慢减小步长,当步长为1的时候完成一次插入排序, 希尔排序的时间复杂度是:O(nlogn)~O(n2),平均时间复杂度大致是O(n^1.5)
public static void shellSort(int[] arr){
int j ;
for(int gap = arr.length/2; gap 0 ; gap/=2){
for(int i = gap; i arr.length; i++){
int temp = arr[i];
for(j = i; j=gap temparr[j-gap]; j-=gap){
arr[j] = arr[j-gap];
}
arr[j] = temp;
}
}
}
关于java数据结顺序表代码和java顺序写的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






