1、打印100以内的素数
① for(int i=2; i<num; i++){
if (num %i ==0){
return false;
}
}
return true;
②改进:
long sprtNum = (long) Math.sqrt(num);
for(int i=2; i<sqrtNum; i++){
if (num %i ==0){
return false;
}
}
return true;
2、打印九九乘法表
3、打印1000以内的回文数字
① int num =12345;
String str = String.ValueOf(num); //得到字符串格式的数字
StringBuffer sb = new StringBuffer(str);
sb.Reverse();
String newStr = sb.toString();
return str.equals(newStr);
② int temp = 0;
while(num>0){
temp = temp*10+num%10;
num /=10;
}
int newVal = temp;
4、获得任意一个时间的下一天的时间
long addTime = 1;
addTime *=1;
addTime *=21;
addTime *=60;
addTime *= 60;
addTime *= 1000;
Date date = new Date(d.getTime()+addTime);
return date;
5、50个人围成一圈,数到3和3的倍数时出圈,问剩下的人是谁?原来的位置是多少?
元素存储用数组或链表—>用一个while循环进行出圈,知道只剩下一个元素留下
public class Cycle{
public static int cycle(int total,int k){
List<Ingeter> dataList = new LinkedList<Integer>();
for(int i =0; i<total;i++)
dataList.add(new Ingeter(i+1));
int index = -1;
while (dataList/size()>1) {
index = (index+k)&dataList.size(); //得到应该出局的下标
dataList.remove(index—); 、、去除元素
}
return (Integer) dataList.get(0)).intValue(); //返回剩下的数的值
}
public static void main(String[] args) {
System.out.println(“剩下的数字的原来位置是:”+ cycle(50,3));
}
}
6、将某个时间以固定格式转化成字符串
DataFormat的使用
SimpleDataFormat pdf = new SimpleDataFormat(“yyyy—MM—dd HH : mm: ss”);
String str = pdf.format(date);
7、Java实现冒泡排序
基本思想:依次比较相邻的两个数,小数放前面,大的放后面,直至比较最后两个数,一一趟结束,第二趟从
int temp = 0;
for (int i = 0; i< arrays.length; i++) {
for ( int j = 0; j < arrays.length-i-1; j++) {
if(array[j] >array[j+1] ){
temp = arrays[j];
arrays[j] = arrays[j+1];
arrays[j+1] = temp;
}
}
}
8、Java实现插入排序算法
基本思想: 将一个数据插入到已经排好序的有序数据中,得到一个新的、数量加1的有序数据
适合于少量数据的排序
for(int i = 0; i< length; i++) {
int j =0 ;
int temp = array[i];
for(int j =i; j>0; j—) {
if (array[j-1] > temp) {
array [j] = array [j-1]
}else break;
}
array[j] = temp;
}
9、Java实现快速排序算法
快速排序利用递归原理,将数组无限制分成两个部分,知道所有数据都排好序为止
通过一趟排序,将待排数据分为独立的两部分,一部分比另外一部分的所有数据都要小,然后再对两遍数据分别进行快速排序
if (low >= high) return ; //一个数字
if ( (high-low) == 1) { //两个数字
if (array[0] >array[1])
swap(array,0,1);
return;
}
int mid = a[low];
int left = low+1;
int right = high;
while( left < right) {
while(left<right && left <=high) {
if (array[left] > mid) break;
left++;
}
while(left<=right && right > low) {
if (array[right] <= mid) break;
right—;
}
if (left < right) swap(array,right,left);
}
swap(a,low,right); //交换中间数字
sort(a,low,right); //排序前面数组
sort(a,right+1,high); //排序后边数组
10、用Java实现一个链表类
class Node {
Object data;
Node next;
public Node(Object data) {
super();
this.data = data;
this.next = null;
}
}
Node head;
public myList() {
head = null;
}
public void clear() {
}