java简单排序

简单排序中包括了:冒泡排序、选择排序、插入排序;

1.冒泡排序的思想:

假设有 N 个数据需要排序,则从第 0 个数开始,依次比较第 0 和第 1 个数据, 如果第 0 个大于第 1 个则两者交换,否则什么动作都不做,继续比较第 1 个第 2 个…,这样依次类推,直至所有数据都“冒泡”到数据顶上。

冒泡排序的的 java 代码:

Public void bubbleSort(){
    int in,out;
    for(out=nElems‐1;out>0;out‐‐)
        for(in=0;in<out;in++){
         If(a[in]>a[in+1])
           Swap(in,in+1);
        }
}

算法的不变性:许多算法中,有些条件在算法执行过程中始终是不变的。这些 条件被称 为算法的不变性,如果不变性不为真了,则标记出错了; 冒泡排序的效率 O(N*N),比较 N*N/2,交换 N*N/4;

2. 选择排序的思想:

假设有 N 条数据,则暂且标记第 0 个数据为 MIN(最小),使用 OUT 标记最左 边未排序的数据,然后使用 IN 标记第 1 个数据,依次与 MIN 进行比较,如果比 MIN 小,则将该数据标记为 MIN,当第一轮比较完后,最终的 MIN 与 OUT 标记 数据交换,依次类推;

选择排序的 java 代码:

Public void selectSort(){
    Int in,out,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);
    }
}

选择排序的效率:O(N*N),比较 N*N/2,交换<N;选择排序与冒泡排序比 较,比较次数没有明显改变,但交换次数明显减少了很多;

3. 插入排序的思想:

插入排序是在部分数据有序的情况下,使用 OUT 标记第一个无序的数据,将 其提取保存到一个中间变量 temp 中去,使用 IN 标记空位置,依次比较 temp 中 的值与 IN‐1 的值,如果 IN‐值大于 temp 的值,则后移,直到遇到第一个比 temp 小的值,在其下一个位置插入;

插入排序的 java 代码:

Public void InsertionSort() {
     Int in,out;
     For(out=1;out<nElems;out++) {
       Long temp=a[out]
       In=out;
       While(in>0&& a[in‐1]>temp)
       {
         A[in]=a[in‐1];
         ‐‐in;
       }
       A[in]=temp;
    }
}

插入排序的效率:O(N*N), 比较 N*N/4,复制 N*N/4;插入排序在随机数的 情况下,比冒泡快一倍,比选择稍快;在基本有序的数组中,插入排序几乎只需 要 O(N);在逆序情况下,并不比冒泡快;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值