java数据结构

java中的简单排序
对于我们经常用到的冒泡排序来说 他遵守3个约定
1:比较2个数字
2:如果满足条件 就交换2个数字位置
第一趟结果之后 最大或者最小的数字冒泡到最上面 最大位置。
可以这样理解 当一趟冒泡结束后 最大或者最小的值一定可以确定出来 需要循环n-1次

选择排序过程也可以认为他是局部有序的:

我们可以这么理解 当吧一个随机数组放在面前的时候 我们假设第一个是最小的 然后用这一个最小的跟他后面剩下的值进行比较 找他比这个假设的值换小的 我们就就交换他们的位置 执行过程 多次比较 一次交换。

int outer,int,min
for(out=0;out<size-1;out++){
min=out;
for(in=out+1;in<size;in++){
if(array[in]<array[min]){
min=in;
}
}
交换
swap(out,min);
}


插入排序过程跟选择排序差不多 他经过一轮排序后 默认的左边小于当前下标的情况下 他是局部有序的

在每一趟结束后,在将temp位置的项插入后,比outer标量下标小的数据项都是局部有序的
例如:
int outer; int in;
for(outer=0;outer<size;outer++){
long temp=array[outer];
in=outer
while(in>0&& array[in-1]>temp)
array[in]=array[i-1];
--in;
}
array[in]=temp;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值