黑马程序员---代码练习

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

/**
 * 定义功能用于打印数组中的元素,元素间用逗号隔开。
 * @author Administrator
 *
 */
public class ArrayTest {
public static void main(String[]args){
int[] arr ={2,3,4,5,6};
printArray(arr);
}
public static void printArray(int[]arr){
for(int x = 0;x<arr.length;x++){
if(x!=arr.length-1)
System.out.print(arr[x]+",");
else
System.out.println(arr[x]);
}
}
}
/*给定一个数组{2,5,4,7,8,1,9},获取数组的最大值和最小值。*/
//获取数组的最大值
/* 思路:1、定义变量,定义初始化值为最大值。
  2、对数组进行遍历
  3、对数组元素依次进行比较,取出最大值。*/
class ZuiZhi{
public static void main(String[]args){
int[] arr ={2,5,4,7,8,1,9};
   getMax(arr);
   getMin(arr);

}
//通过初始化坐标求出数组的最大值
public static void getMax(int[] arr){
int max = 0;
for(int x = 0;x<arr.length;x++){
if(arr[x]>arr[max])
max = x;
}
System.out.println(arr[max]);
}
//通过初始化为数组中任一元素求出的最小值
public static void getMin(int[] arr){
int min = arr[0];
for(int x = 0;x<arr.length;x++){
if(arr[x]<min)
min = arr[x];
}
System.out.println(min);
}

}

/**
 * 用*打印一个行数为3,列数为4的长方形。
 * @author Administrator
 *
 */
public class ForForDemo {
public static void main(String[]args){
for(int x = 0;x<3;x++){
for(int y = 0;y<4;y++){
System.out.print("*");
}
System.out.println();
/*对于打印的长方形,外循环控制行数,内循环控制列数。*/
}
}
}
/*打印一个尖朝下的三角形
 *****
 ****
 ***
 **
 *


*/


class SanJiao{
public static void main(String[]args){
/*   //方法一:定义变量z
int z = 5;
for(int x =0;x<5;x++){
for(int y = 0;y<z;y++){
System.out.print("*");
}
System.out.println();
z--;
}
*/
//方法二:定义变量z为0
int z = 0;
for(int x =0;x<5;x++){
for(int y = z;y<5;y++){
System.out.print("*");
}
System.out.println();
z++;
}
//方法三:不定义变量
for(int x = 0;x<5;x++){
for(int y = x;y<5;y++){
System.out.print("*");
}
System.out.println();
}
}
}
/**
 * 打印九九乘法表
 * 1*1=1
 * 1*2=2 2*2=4
 * 1*3=3 2*3=6 3*3=9
 * @author Administrator
 *
 */
public class ForForTest {
public static void main(String[]args){
for(int x = 1;x<=9;x++){
for(int y = 1;y<=x;y++){
if(y<x){
System.out.print(y+"*"+x+"="+x*y+" ");
}else{
System.out.print(y+"*"+x+"="+x*y);
}
}
System.out.println();
}
}
}

/**
 * 获取1~100之间7的倍数的个数并打印。
 * @author Administrator
 */
/*思路:1、通过循环对1~100进行遍历.
 *   2、在遍历过程中定义条件,只对7的倍数进行操作。
 *   3、定义一个变量将符合条件的数取出。
*/
public class ForTest2 {
public static void main(String[]args){
int count = 0;
for(int x = 0;x<=100;x++){
if(x%7==0){
count++;
}
}
System.out.println("count="+count);
}
}

/**
 * 定义一个功能,完成3+4的运算。并将结果返回给调用者。
 * @author Administrator
 *
 */
public class HanShuDemo {
public static void main(String[]args){
int sum = getSum();
System.out.println("sum="+sum);
}
public static int getSum(){
return 3+4;
}
}
/*以上这个函数功能是固定的,毫无扩展性可言。
 为了方便用户需求,由用户指定加数和被加数,这样功能才有意义。*/
class HanShuDemo1 {
public static void main(String[]args){
int sum = getSum(4,6);
System.out.println("sum="+sum);
}
public static int getSum(int x,int y){
return x+y;
}
}
/*判断两个数是否相同。
 * 思路:
 * 1、明确思路的结果:结果是boolean。
 * 2、功能是否有未知内容参与运算。有,两个整数。
 */
class Compare{
public static void main(String[]args){
boolean i = compare(6,6);
System.out.println(i);
}
public static boolean compare(int x,int y){
/* 方法一:if(x==y)
return true;
 return false;
方法二:return x==y;
*/
//方法三:三元运算符
return (x==y)?true:false;
}
}
/*定义一个功能,对两个数进行比较,获取更大的数。*/
class Compare1{
public static void main(String[]args){
int i = getMax(3,4);
System.out.println(i);
}
public static int getMax(int x,int y){
if(x>y)
return x;
return y;
}
}

/*通过不同方式给指定数组进行排序。*/


public class PaiXu {
public static void XuanZe(int[] arr){
for(int x = 0;x<arr.length-1;x++){
for(int y =x+1;y<arr.length;y++){
if(arr[x]>arr[y]){
swap(arr,x,y);
}
}
}

}
public static void maoPao(int[] arr){
for(int x = 0;x<arr.length-1;x++){
for(int y = x;y<arr.length-x-1;y++){
if(arr[y]>arr[y+1]){
swap(arr,y,y+1);
}

}
}
}
//位置置换功能的抽取
public static void swap(int[]arr,int a,int b){
int temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
public static void printlnArrays(int[]arr){

System.out.print("[");
for(int x = 0;x<arr.length;x++){
if(x!=arr.length-1)
System.out.print(arr[x]+",");
else
System.out.println(arr[x]+"]");
}
}
public static void main(String[]args){
int[]arr ={2,4,6,5,8,7};
printlnArrays(arr);
maoPao(arr);
printlnArrays(arr);
}
}
/*折半查找 提高效率,但是必须要保证该数组是一个有序的数组。*/
class ChaZhao{
public static int halfSearch(int[]arr,int key){
int min,mid,max;
min = 0;
max = arr.length-1;
mid = (min+max)/2;
while(arr[mid]!=key){
if(arr[mid]>key)
max = mid-1;
else if(arr[mid]<key)
min = mid+1;
if(min>max)
return -1;
mid = (max+min)/2;

}
return mid;
}
public static int halfSearch_1(int[]arr,int key){
int min = 0, max = arr.length-1,mid;
while(min<=max){
mid = (max+min)/2;
if(key>arr[mid])
min = mid+1;
else if(key<arr[mid])
max = mid-1;
else
return mid;
}
return -1;
}
public static void main(String[]args){
int[]arr ={2,3,4,5,6};
System.out.println(halfSearch_1(arr,11));
}
}






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值