java 数据结构与排序

36 篇文章 1 订阅

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

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

存取其他项很慢
链表插入快,删除快查找慢
二叉树查找、插入、删除都快(如果树保持平衡)删除算法复杂
红黑树查找、插入、删除都快。树总是平衡的。算法复杂
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插入到数组中
 }





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tiegenZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值