黑马程序员__java(4)__数组与排序








 ------- android培训java培训、java学习型技术博客、待与您交流! ----------




数组


◆数组的遍历:


列题: ↓↓

package Jichu;

//程序功能 定义一个功能 打印数组中的元素、中间用,号隔开

public class ShuZuDemo1 {
	
	public static void main(String[] args) {
	
	int[] arr = {3,5,6,7,8,9,12};
	
	ShuZu(arr); //进行调用
	}
 


public static void  ShuZu(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.print(arr[x]+"]");
			
		}
	}
	
}
}



◆数组的排序



列选择排序:↓↓



 



package Jichu;

/*
 * 
 * 程序功能 选择排序的操作 
 * 
 * 
 * */
 

//选择排序的特点、每进行一次排序最值出现在头角标位置上 

public class PaixuDemo1 {

	/**
	 * @param args
	 */
	
	
	public static void main(String[] args)
	{
		int[] arr = {5,1,6,4,2,8,9};
		//排序前;
		printArray(arr);

		//排序
	    xzpx(arr);
	

		
		//排序后:
		printArray(arr);
			
	}

	public static void printArray(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 xzpx(int[]arr)
{
	for(int x=0;x<arr.length;x++)  //获取角标的元素
	{
		for(int y=x+1;y<arr.length;y++)
			{
			
			  if(arr[x]>arr[y])//用0角标的元素去和内循环的角标相比较
			  {
				  int temp = arr[x]; //用一个变量记录相比较数组的最大值
				  arr[x]=arr[y]; //由于进行了大小比较所以进行位置互换
				  arr[y]=temp; //进行位置互换 
				  
				
				  
				 
			  }
			}
			}
}
}



冒泡排序:↓







package Jichu;

public class PaiXuDemo2 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		int[] arr = {5,1,6,4,2,8,9};
		//排序前;
		printArray(arr);

		//排序
	    mp(arr);
	

		
		//排序后:
		printArray(arr);
			
	}

	public static void printArray(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 mp(int[]arr)
{
	for(int x=0; x<arr.length-1;x++)
	{
		for(int y=0; y<arr.length-x-1;y++)//-x 每一次比较元素减少 -1避免角标越界
		{
			if(arr[y]<arr[y+1])
			{
				int temp = arr[y];
				arr [y] =arr[y+1];
				arr[y+1]=temp;
			}
			
			
		}
	}
}
}



列题:各个进制间的转换


package Jichu;

public class jizhizhuanhuan2 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		toBin(-6);  //	十进制转二进制的结果
		
		
		toba(0);   //十进制转八进制 的结果
		
		toHex(60);   	//十进制转换成十六进制的结果

	}

//	十进制转二进制
	public static void toBin(int num)  //定义一个方法 
	{
		jz(num,1,1);
		
	}
	
	
	//十进制转八进制 
	public static void toba(int num) //定义一个方法 
	{
		
		jz(num,7,3);
	}
	
	
	//十进制转换成十六进制
	
	public static void toHex(int num) //定义一个方法 
	{
		
		jz(num,15,4);
	}
	public static void jz(int num,int y,int p)//与上的数 y 偏移位 p
	{
		if (num ==0);
		{
		System.out.print("该进制的值为0");
		}
		
		char [] ch ={'0','1','2','3','4'  //建立一个表
				,'5','6','7','8'
				,'9','A','B','C'
				,'D','E','F'};
		
		char []arr = new char[32]; //定义一个容器  
		
		int post = arr.length; //定义一个操作数组的指针
		
		while(num!=0)
		{
			int temp = num & y;
			
			arr[--post] = ch[temp];
			
			num = num >>>p; //进行位移
			
			
		}
		
		for(int x=post;x<arr.length;x++)
		{
			System.out.print(arr[x]);
		}
		System.out.println();
		
	}
}










  ------- android培训java培训、java学习型技术博客、待与您交流! ----------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值