java 数据结构与排序

来源:互联网 发布:草履虫软件下载 编辑:程序博客网 时间:2024/06/04 23:25

数据结构的特性(数据结构中除了数组之外都可以被认为是抽象数据结构)

数据结构优点缺点数组插入快,如果知道下标,可以非常快地存取查找慢,删除慢,大小固定有序数组比无序的数组查找快删除和插入慢,大小固定提供后进先出的存取存取其他项很慢队列提供后进先出的存取

存取其他项很慢链表插入快,删除快查找慢二叉树查找、插入、删除都快(如果树保持平衡)删除算法复杂红黑树查找、插入、删除都快。树总是平衡的。算法复杂2-3-4 树查找、插入、删除都快。树总是平衡的。类似的树对磁盘存储有用
算法复杂哈希表如果关键字已知则存储极快。插入快删除慢,如果不知道关键字则存取很慢,对存储空间使用不充分插入、删除快,对最大数据项的存取很快对其他数据项存取慢对现实世界建模有些算法慢且复杂

1.冒泡排序(速度慢):

int[] in={20,80,75,23,56,24,11};

for(int i=in.length-1; i>=1;i--){
for(int j=0;j<i;j++){
if(in[j]>in[j+1]){
int s = in[j+1];
in[j+1] = in[j];
in[j] =s;
}
}
}
for(int ss=0;ss<in.length;ss++){
System.out.println("------------>"+in[ss]);
}


2.选择排序

for (int i = 0; i < in.length; i++) {   
int temp = in[i];    
int index = i;    
for (int j = i + 1; j < in.length; j++) {    
if (temp >in[j]) {
temp = in[j];     
index = j;     
}   
}   
in[index] = in[i];  
in[i] = temp;  


3.插入排序

 int i, j, irt;// 要插入的数据

for (i = 1; i < in.length; i++) {                        
irt = in[i];                                              // 设置数组中的第2个元素为第一次循环要插入的数据
        j  =  i - 1;
       while (j >= 0 && irt < in[j]) {              // 如果要插入的元素小于第j个元素,就将第j个元素向后移动
in[j + 1] = in[j];                                  
 j--;
}
in[j + 1] = irt;                                   //将irt插入到数组中
 }





原创粉丝点击