【软考篇】——算法

        在数组里学到了三个算法,果断布置任务,拿下它们!!!

        首先照着之前的笔记敲了一遍,发现之前的笔记有错,所以在网上搜了一下,修正了一下代码。调试OK之后,

自己敲了一遍,出了很多错,但是一个一个慢慢的都调试出来了。

        上边都是自己的练习过程,我们小组是这样安排的。白天自己练习,把在数组中学到的三个算法的原理和代码都

理清楚,晚上拿着电脑,代码置空,重敲!

        三个算法:选择排序、冒泡排序和二分查找,你猜我花了多长时间,从敲到调试完成,20分钟,为自己鼓掌啦!

嘻嘻,大家肯定比我做的更好啦~

        下边分享一下我的代码吧~

        选择排序:

public class suanfa{
	public static void main(String[] args){
		int[] ints={1,2,3,9,7,5,23};
		xuanze(ints);//选择排序
		//maopao(ints);//冒泡排序
		//erfen(ints,3);//二分查找
		
	}
        //选择排序
       public static void xuanze(int[] a){
		for (int i=0;i<a.length;i++)
		{
			for(int j=i+1;j<a.length;j++){
				if(a[i]<a[j])
				{
					int temp=a[i];
					a[i]=a[j];
					a[j]=temp;
				}
				for (int c=0;c<a.length;c++){
					System.out.print(a[c]+" ");
				}
                                System.out.print("\n");
                       }
		}
	}
}
             运行结果如下:


          选择排序的原理就是从第一个位置开始,依次往后比较,直到找到最大(最小)的,然后再从第二个位置开始……

      

         冒泡排序:

      public static void maopao(int[] a){
		for(int i=0;i<a.length;i++){
			for(int j=a.length-1;j>i;j--)
			{
				if(a[j]>a[j-1]){
					int temp=a[j];
					a[j]=a[j-1];
					a[j-1]=temp;
				}
				for(int c=0;c<a.length;c++)
				{
					System.out.print(a[c]+" ");
				}
				System.out.print("\n");
			}
		}
	}         
	

          结果如下


       


                冒泡排序的原理就是从后往前,邻个进行比较,直到最大(最小)上升至第一个。


         二分查找:

public static int erfen(int[] a,int num){
		if (a.length==0) return -1;
		int start=0;
		int end=a.length-1;
		int m=(start+end)/2;
		if (a[m] == num) System.out.print(m+" "+"\n");
		while(start<=end){
			if(a[m]==num) return -1;
			if(num>a[m])
			{
				start=m+1;
			}
			if(num<a[m]){
				end=m-1;
			}
			m=(start+end)/2;
			System.out.print(m+" "+"\n");
		}
		return -1;
	}

        结果如下:



        这是二分查找的显示结果,显示的是所需查找数字的位置。在敲二分查找的时候,最关键的是除以2的时候的那

start和end与m关系的判断,在发现所查的数大于平均数位置上的数,这时候到底是start变化还是end变化,如何变

化,这个就不进行解密了,大家好好研究研究,二分法也就不难了。

评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值