java学习笔记5

来源:互联网 发布:大学校园网络营销策划 编辑:程序博客网 时间:2024/05/22 14:17

1、数组定义的其他方法:明确数组的长度和元素。记住数据一多就用数组存起来,方便管理,操作。

2、几种常见的排序思想(从小到大排序):

A、选择排序:第一个数和其后的每一个数依次进行比较,若大于就交换两个的位置,遍历一遍后,整个数组最小的数已经在第一的位置;之后第二个数和其后的每一个数比较大小,若大于就交换两个的位置,遍历一遍后,除去最小数的数组中的新的最小数已经在第二的位置,也即整个数组中第二小的已经在第二的位置;依次类推,直到倒数第二个数确定后,剩下的那个也就确定了,它一定是最大值。


须注意的是,当调用函数来实现排序时,传递的是数组的引用地址,所以对形参数组操作也就是对实际数组进行操作,函数执行完,实际数组已经被改变了,所以函数没有必要再返回什么了,也即返回值类型是void。



B、冒泡排序

冒泡排序每次挨着的两个数下标为1和2的作比较,前面的大了就交换位置,下次为下标为2和3的做比较时,然后是下标为3和4的作比较。。。依次下去;这样所有元素过一遍后,最大的数就跑到最去了。


选择排序的性能问题:可能换位好几次后,才能确定最小的值,效率很低。改进方法为:先找最小的,找到最小的后直接1次实现和第一个数换位置,这样只需一次换位就能确定最小值。


3、数组的查找:遍历查找和折半二分法查找(折半查找只适用有序数组的查找)


java自带的二分查找除了能找到那个数的下标,若要查找的数,数组中不存在免责返回负的该插入的下标-1。要注意java的这个函数在java.util.*中。


4、把十进制数转换为16进制数


for循环8次是因为,内存中的数据都是32位的。



在把12 变换成C的这个过程中当然这个时候也很适合用数组的方法:

注意 num = num>>>4;    这句num>>>4之后值是要重新赋给num的!也即要有人接收这个结果!

上面那个toHex函数是有问题的,显示的时候顺序是颠倒的。下面这个ok



上面是十进制转16进制;同理可得十进制转8进制,转2进制;

区别在于查表的数组不同,与的数不同,以及右移的位数不同。


什么时候使用查表法比较好:当有不少数据且和有序数下标一一对应时就可以借助数组来用查表法;例如星期一到星期七对应1-7,就可以用String[ ]来装星期一到七,这样下标就是1-7。

0 0