三种简单的排序算法

最简单的三种排序算法,分别是冒泡排序,选择排序,插入排序

在这里,主要用图去帮助记忆三种排序的具体操作

冒泡排序(从左到右,从上到下)


不变性:右边是有序的

代码:

public void bubbleSort(){
    	 int out, in;
    	 for(out = nElems-1; out > 0; out--)
    		 for(in = 0 ; in < out; in++)
    			 if(a[in]>a[in+1])
    				 swap(in,in+1);
    	 
     }

选择排序


不变性:最左边是有序的

代码:

public void selectionSort()
 {
	 int out,in,min;
	 for(out=0;out<=nElems-2;out++){
		 min = out;
		 for(in=out+1;in<=nElems-1;in++)
		 {
			 if(a[min] > a[in])
				 min = in;
		 }
		 swap(out,min);
	 }
 }

插入排序


不变性:左边局部有序

代码:

public void insertSort()
 {
	 int out,in;
	 for(out=1;out<=nElems-1;out++)
	 {
		 int temp = a[out];
		 for(in = out ;in>=1;in--)
		 {
			 if(a[in-1]>temp)
				 a[in] = a[in-1];
		 }
		 a[in] = temp;
	 }
 }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值