打印等腰三角形代码
public class ForForTest{ public static void main(String []args){ for(int x=0;x<5;x++){ for(int y=x+1;y<5;y++){ System.out.print(" "); } for(int z=0;z<5;z++){ System.out.print("* "); } System.out.println(); } } }
折半查找代码:
//练习:给一个数值,要求插入给定数组中,并且保证插入后数组按一定的顺序排列
public class ArrayTest2{ //数组查找数值 public static void main(String []args){ int arr[] = {1,2,3,4,5,6,7,88,9,10}; int index = getIndex(arr,8); System.out.println("关键字存在在数组中的第"+(index+1)+"位"); } public static int halfSeach_2(int arr[],int key){ //第二种 折半方法。 按照索引值进行比较 int max,min,mid; min = 0; max = arr.length - 1; while(min<=max){ //条件为真的时候进行比较 mid = (max+min)/2 ; //位运算 相当于除2 if(key>arr[mid]) min = mid +1 ; else if(key < arr[mid]) max = mid -1; else return mid; } return -1; }
//得到 该数值插入到数组中的第几位
//思路:利用折半查找,如果找到数组中有相应的数,便将该数插入到该位置,若没有找到那么返回折半索引的最小位。
public static int getIndex(int arr[],int key){ int max,min,mid; min = 0; max = arr.length - 1; mid = (max + min) / 2; while(key != arr[mid]){ //当 关健值 不等于 中间值时,进行折半查找。 if(key>arr[mid]) min = mid +1 ; else max = mid -1; if(min > max) return min; mid = (max + min)/2; } return mid; }
/*
折半查找: 前提是 数组是个有序的数列
1、首先定义数组最大索引和最小索引
2、算出中间索引值
3、将对应的中间索引值与关健值比较
/*
public static int halfSeach(int arr[] , int key){ int max,min,mid; min = 0; max = arr.length - 1; mid = (max + min) / 2; while(key != arr[mid]){ //当 关健值 不等于 中间值时,进行折半查找。 if(key>arr[mid]) min = mid +1 ; else max = mid -1; if(min > max) return -1; mid = (max + min)/2; //循环中一直进行折半。 } return mid; } }
排序算法的代码,包括冒泡、选择、折半排序
import java.util.*; public class ArrayTest{ public static void main(String []args){ int []arr = {23,3,1,53,43,13,10}; //排序前 printArray(arr); //排序 //selectSort(arr); bobleSort(arr); //Arrays.sort(arr); //java中已经封装好的排序算法 //排序后 printArray(arr); } //选择排序 public static void selectSort(int []arr){ for(int x=0;x for(int y=x+1;y if(arr[x]>arr[y]){ swap(arr,x,y); } } }
//冒泡排序:每次比较相邻的元素,满足条件的换位。每一层循环之后,最大值回到元素的顶端,因此比较时内层循环数组值减少一位。
public static void bobleSort(int arr[]){ for(int x=0;x for(int y=0;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 printArray(int arr[]){ System.out.print("["); for(int i=0;i if(i != arr.length-1){ System.out.print(arr[i]+","); }else{ System.out.print(arr[i]); } } System.out.print("]"); System.out.println();
上一篇:Java中多线程程序设计的技巧
下一篇:关于java数组的返回
¥498.00
¥399.00
¥29.00
¥299.00