黑马程序员技术交流社区
标题:
我今天敲了一早上,是不是没救了?
[打印本页]
作者:
小强9090
时间:
2014-6-6 13:52
标题:
我今天敲了一早上,是不是没救了?
class t6
{
public static void main(String[] args)
{
int[] arr={1,2,0,6,98,0};
//toBin(60);toHex(60);toHex_2(60);
toHex_3(60);
toHex_4(60);
//printArr(arr);
System.out.println("Hello World!");
}
//打印数组
public static void printArr(int[] arr)
{
System.out.print("[");
for (int i=0; i<arr.length ;i++ )
{
if (i!=arr.length-1)
System.out.print(arr[i]+",");
else
System.out.println(arr[i]+"]");
}
}
//冒泡排序
public static void bubble(int[] arr)
{
for (int i=0;i<arr.length-1;i++)
{
for (int j=i+1; j<arr.length ;j++ )
{
if (arr[i]<arr[j])
{
//int temp=arr[i];
//arr[i]=arr[j];
//arr[j]=temp;
swap(arr,i,j);
}
}
}
}
//俩数换值
public static void swap(int[]arr,int a,int b)
{
int temp=arr[a];
arr[a]=arr[b];
arr[b]=temp;
}
//数组的查找
public static int GetIndex(int[] arr,int key)
{
for (int i=0;i<arr.length ;i++ )
{
if (arr[i]==key)
return i;
}
return -1;//不在该数组内
}
//折半查找(可以提高效率):数组必须为有序数组,找到的为元素在数组中的角标。
public static int halfSearch(int[] arr,int key)
{
int min=0,max=arr.length-1,mid=(min+max)/2;
while (arr[mid]!=key)
{
if (key>arr[mid])
min=mid+1;
else
max=mid-1;
if(max<min)
return -1;
mid=(min+max)>>1;
}
return mid;
}
//折半查找的第二种方式,数组必须为有序的。
public static int halfSearch_2(int[] arr,int key)
{
int min=0,max=arr.length-1,mid;
while (min<=max)
{
mid=(min+max)/2;
if (key>arr[mid])
min=mid+1;
else if(key<arr[mid])
max=mid-1;
else
return mid;
}
return -1;//返回-1是表示该数没有找到,返回mid表示该数若存在则应该所在的位置。
}
//在有序数组中插入一个数,先查找该数组中是否存在该数,若存在,则在其原位插入,
//将原来的数据一次往后顺延;若不存在,则返回该数可以插入的位置,然后以此往后顺延。
//进制的转换操作
//十进制转二进制
public static void toBin(int num)
{
StringBuffer sb = new StringBuffer();//是一个容器
while (num!=0)
{
sb.append(num%2);
num/=2;
}
System.out.println(sb.reverse());//可以反转输出
}
//十进制转十六进制
public static void toHex(int num)
{
for (int x=0;x<8 ;x++ )
{
int temp=num&15;
if(temp>9)
System.out.println((char)(temp-10+'A'));
else
System.out.println(temp);
num=num>>>4;
}
}
public static void toHex_2(int num)
{
StringBuffer sb = new StringBuffer();
for (int x=0;x<8 ;x++ )
{
int temp=num&15;
if(temp>9)
sb.append((char)(temp-10+'A'));
else
sb.append(temp);
num=num>>>4;
}
System.out.println(sb.reverse());
}
//查表法来获取内容
//将所有的元素临时存储起来,建立对应关系。
//每一次&15后的值作为索引去查建立好的表,就可以找到对应的元素,这样比“-10+‘A’简单的多”。
public static void toHex_3(int num)
{
//建立表
char[] chs = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
for (int x=0;x<8 ;x++ )
{
int temp=num&15;
System.out.print(chs[temp]);
num=num>>>4;
}
}
//上面结果是出来了,但是是反着的,要求正向输出。
public static void toHex_4(int num)
{
char[] chs = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char[] arr=new char[8];
int pos=arr.length-1;//倒着存贮
while (num!=0)
{
int temp=num&15;
arr[--pos]=chs[temp];
num=num>>>4;
}
System.out.println(pos);
for (int x=pos;x<arr.length ;x++ )
{
System.out.print(arr[x]+",");
}
}
}
复制代码
作者:
小强9090
时间:
2014-6-6 13:53
就这么几个简单的程序,跟着老师敲,还老是编译不通过,不停的找错,改错,太马虎,太粗心
作者:
小强9090
时间:
2014-6-6 13:55
有没有高效一点的法子,我也受不了自己的速度,,与马虎了
作者:
小强9090
时间:
2014-6-6 13:57
自学的c都被我忘掉了,昨天写个循环都忘记怎么输出了。看来语言真是不学就会忘掉那
作者:
小强9090
时间:
2014-6-6 13:58
还是要常常多复习,多巩固,才能越来越好哈。
作者:
小强9090
时间:
2014-6-6 13:59
就我一个人在评论,算是打酱油吗
作者:
小强9090
时间:
2014-6-6 14:00
:loveliness:
作者:
李小然
时间:
2014-6-6 16:28
小强同学你好~
学习本来就应该是个慢功夫,不要心急
实力总是会在不经意间提高的!
另外不要这样水贴,小心涛哥抓你!:D
作者:
丁绍然
时间:
2014-6-6 16:47
你是来蹭经验的么,一,刚学的时候都这样,没基础的语法都记不熟,还有拼写错误能不报错么。
二,你学的时候算法一定要闹清。
少年慢慢来吧,多敲代码,熟能生巧
作者:
上杉
时间:
2014-6-6 17:06
这样的贴就算水贴啊?记住了哈哈!!!!:lol
作者:
黄梁梦想享
时间:
2014-6-6 18:59
努力,哥们
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2