打印等腰三角形代碼
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
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("keyword存在在數組中的第"+(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、將相應的中間索引值與關健值比較-----> if(key>arr[mid]) min = mid+1;else if(key
*/
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();
}
}