java学习之数组(二)
2015-08-11 23:20
441 查看
紧接着上一篇数组博文的下一篇;上一篇有一个数三退一的游戏,在这里还有一个很能体现面向对象的解法,还运用了稍显高大上的双向环哦~
public class TestSearch {
public static void main(String[] args) {
int a[] = {1,3,6,8,9,10,12,18,20,34};
int i = 12;
System.out.println(binarySearch(a,i));
}
}
“`
public class Count3Quit { public static void main(String[] args) { KidCircle kd = new KidCircle(500); int countNum = 0; Kid k = kc.first; while(kc.count > 1) { countNum++; if(countNUm == 3) { countNum = 0; kc.delete(k); } k = k.right; } System.out.println(kc.first.id); } } class Kid { int id; Kid left; Kid right; } class KidCircle { int count = 0; Kid first,last; KidCircle(int n) { for(int i = 0; i < n; i++) { add(); } } void add() { Kid k = new Kid(); k.id = count; if(count <= 0) { first = k; last = k; k.left = k; k.right = k; } else { last.right = k; k.left = last; k.right = first; first.left = k; last = k; } count++; } void delete(Kid k) { if(count <= 0) { return; } else if(count == 1) { first = last = null; } else { k.left.right = k.right; k.right.left = k.left; if(k == first) { first = k.right; } else if(k == last) { last = k.left; } } } } 接下来上一位数组里面一个不得不提的经典小程序,即二分法查找
public class TestSearch {
public static void main(String[] args) {
int a[] = {1,3,6,8,9,10,12,18,20,34};
int i = 12;
System.out.println(binarySearch(a,i));
}
public static int binarySearch(int[] a, int num) { if(a.length == 0) { return -1; } int startPos = 0; int endPos = a.length - 1; int m = (startPos + endPos) / 2; while(startPos <= endPos) { if(a[m] == num) { return m; } if(a[m] > num) { endPos = m - 1; } if(a[m] < num) { startPos = m + 1; } m = (startPos + endPos) / 2; } }
}
“`
相关文章推荐
- Java小游戏之打飞机(二)
- 《Java实战开发经典》第四章4.3
- 《Java实战开发经典》第四章4.2
- 《Java实战开发经典》第四章4.1
- java类初始化,使用构造方法
- 深入理解Java虚拟机(1)虚拟机内存区域划分 与内存溢出异常
- java写文件时,输出不完整的原因以及解决方法close()或flush()
- 对spring默认的单列模式的理解
- java编码 100匹马 100块瓦
- Java Dynamic proxy
- 安装myeclipse-10.7.1及注册解码
- springmvc学习第三天
- (转)java二维数组的深度学习(静态与动态)
- Java基础-反射
- JAVA多线程实现的三种方式
- 大一新生第一次写java程序,用System.currentTimeMillis() 获取当前时间
- java二维数组学习(转)
- JAVA ReentrantLock的使用
- java一维数组学习
- 【leetcode】Remove Element【java】