I pledge my life and honor to the Night's Watch, for this night and all the nights to come
一.数组元素的赋值(杨辉三角,回型数等)
package cn.kgc;
/**
* @Author $(USER)
* @Date $(DATE)
* @Description 杨辉三角
*/
public class zuoye4 {
public static void main(String[] args) {
//声明并初始化二维数组
int[][] yanghui=new int[10][];
//给数组的元素赋值
for(int i=0;i<yanghui.length;i++){
yanghui[i]=new int[i+1];
//给首末元素赋值
yanghui[i][0]=1;
yanghui[i][i]=1;
//给每行非首末元素赋值
if(i>1){
//
for(int j=1;j<yanghui[i].length-1;j++){
yanghui[i][j]=yanghui[i-1][j-1]+yanghui[i-1][j];
}
}
}
//遍历二维数组
for(int i=0;i<yanghui.length;i++){
for(int j=0;j<yanghui[i].length;j++){
System.out.print(yanghui[i][j]+" ");
}
System.out.println();
}
}
}
二.求数值型数组中元素的最值,平均数,总和等
package cn.kgc;
/**
* @Author $(USER)
* @Date $(DATE)
* @Description 定义一个int型一维数组,包含10个元素,分别赋一些随机整数,
* 然后求出所有元素的最值,和值
* 所有随机数都是两位数
* (int)(Math.random()*(99-10+1)+10)
*/
public class sggtest1 {
public static void main(String[] args) {
int[] arr=new int[10];
for(int i=0;i<arr.length;i++){
arr[i]=(int)(Math.random()*(99-10+1)+10);
}
//遍历数组
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+"\t");
}
System.out.println();
//max
int max=arr[0];
for(int i=1;i<arr.length;i++){
if(max<arr[i]){
max=arr[i];
}
}
System.out.println("最大值为:"+max);
//min
int min=arr[0];
for(int i=1;i<arr.length;i++){
if(min>arr[i]){
min=arr[i];
}
}
System.out.println("最小值为:"+min);
//sum
int sum=0;
for(int i=1;i<arr.length;i++){
sum+=arr[i];
}
System.out.println("和为:"+sum);
//avg
System.out.println("平均数为:"+(double)sum/10);
}
}
三.数组的复制,反转,查找(线性查找,二分法等)
package cn.kgc;
/**
* @Author $(USER)
* @Date $(DATE)
* @Description
*/
public class sggtest2 {
public static void main(String[] args) {
int[] array1,array2;
array1=new int[]{2,3,5,7,11,13,17,19};
//显示arrays1内容
for (int i = 0; i < array1.length; i++) {
System.out.print(array1[i]+"\t");
}
//赋值array2变量等于array1
array2=array1;//只是把array1地址给了array2,都指向了堆中只有一个数组实体
//修改array2中的偶索引元素,使其等于索引值
for (int i = 0; i < array2.length; i++){
if(i%2==0){
array2[i]=i;
}
}
System.out.println();
//打印出array1
for (int i = 0; i < array1.length; i++) {
System.out.print(array1[i]+"\t");
}
}
}
package cn.kgc;
/**
* @Author $(USER)
* @Date $(DATE)
* @Description 实现array2对arry1数组的复制
*/
public class sggtest21 {
public static void main(String[] args) {
int[] array1,array2;
array1=new int[]{2,3,5,7,11,13,17,19};
//显示arrays1内容
for (int i = 0; i < array1.length; i++) {
System.out.print(array1[i]+"\t");
}
//数组的复制
array2=new int[array1.length];
for(int i=0;i<array2.length;i++){
array2[i]=array1[i];
}
//修改array2中的偶索引元素,使其等于索引值
for (int i = 0; i < array2.length; i++){
if(i%2==0){
array2[i]=i;
}
}
System.out.println();
//打印出array1
for (int i = 0; i < array1.length; i++) {
System.out.print(array1[i]+"\t");
}
}
}
package cn.kgc;
/**
* @Author $(USER)
* @Date $(DATE)
* @Description
*/
public class sggtest22 {
public static void main(String[] args) {
String[] arr=new String[]{"dd","gg","mm","jj","bb"};
//数组复制
String[] arr1=new String[arr.length];
for (int i = 0; i < arr1.length; i++) {
arr1[i]=arr[i];
}
//数组的反转
// 方法一
//for(int i=0;i<arr1.length/2;i++){
// String temp=arr[i];
// arr[i]=arr[arr.length-i-1];
// arr[arr.length-i-1]=temp;
//}
//方法二
for(int i=0,j=arr.length-1;i<j;i++,j--){
String temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
//遍历
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+"\t");
}
}
}
/**
* @Author $(USER)
* @Date $(DATE)
* @Description
*/
public class sggtest31 {
public static void main(String[] args) {
String[] arr = new String[]{"dd", "gg", "mm", "jj", "bb"};
//查找
// 线性查找
String dest = "bb";
boolean flag = true;
for (int i = 0; i < arr.length; i++) {
if (dest.equals(arr[i])) {
flag = false;
System.out.println("找到了指定元素,位置为:" + i);
break;
}
}
if (flag) {
System.out.println("sorry");
}
//二分法查找
//前提:所要查找的数组必须有序
int[] arr2=new int[]{-215,-58,-2,4,12,22,46,76,85,192};
int dest1=46;
int head=0;//初始的首索引
int end=arr2.length-1;//初始的末索引
boolean isflag=true;
while(head<=end){
int mid=(head+end)/2;
if(dest1==arr2[mid]){
isflag=false;
System.out.println("找到了指定元素,位置为:" + mid);
break;
}else if(arr2[mid]>dest1){
end=mid-1;
}else{
head=mid+1;
}
}if(isflag){
System.out.println("sorry");
}
}
}
四.数组元素的排序算法——十大内部排序算法之冒泡排序法
/**
* @Author $(USER)bubblesort排序
* @Date $(DATE)
* @Description
*/
public class sggtest4 {
public static void main(String[] args) {
int[] arr=new int[]{43,55,-45,66,85,74,12,6,41};
//冒泡排序
for (int i = 0; i < arr.length-1; i++) {
for(int j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+"\t");
}
}
}