publicclassBinarySearch{publicstaticvoid main (String[] args){int[] array ={1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31};int target =27;int idx =binarySearch(array , target);System.out.println(idx);}publicstaticintbinarySearcj(int[] a ,int t){int l =0;int r = a.length()-1;int m;while(l <= r){
m =(l + r)/2;if(a[m]== t){return m;}elseif(a[m]> t){
r = m -1;}else{
l = m +1;}}return-1;}}
排序算法
1.手写冒泡排序
publicclassBubbleSort{publicstaticvoid main (String[] args){int[] array ={1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31};bubble(array);}publicstaticvoidbubble(int[] a){for(int i =0; i < a.length()-1; i++){for(int j = i +1; j < a.length(); j ++){if(a[i]> a[j]){int temp = a[i];
a[i]= a[j];
a[j]= temp;}}}}}
2.手写选择排序
publicclassSelectSort{publicstaticvoid main (String[] args){int[] array ={1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31};selection(array);}publicstaticvoidselection(int[] a){for(int i =0; i < a.length()-1; i++){int s = i
for(int j = i +1; j < a.length(); j++{if(a[s]> a[j]){
s = j;}}int temp = a[s];
a[s]= a[i];
a[i]= temp;}}}
3.手写插入排序
publicclassInsertSort{publicstaticvoid main (String[] args){int[] array ={1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31};insert(array);}publicstaticvoidinsert(int[] a){for(int i =1; i < length -1; i++){int temp = a[i]for(int j = i -1; j >=0; j--){if(a[j]> temp){
a[j+1]= a[j];}else{break;}}
a[j+1]= temp;}}}
4.手写快速排序
publicclassQuicktSort{publicstaticvoid main (String[] args){int[] array ={1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31};quick(array,0,array.length());}publicstaticintparttion(int[] a ,int l ,int h){int pv = a[h];int i = l;for(int j = l ; j < h ; j++){if(a[j]< pv){int temp = a[i];
a[i]= a[j];
a[j]= temp;
i++;}}int t = a[h];
a[h]= a[i];
a[i]= t;return i;}publicstaticvoidquick(int[] a ,int l ,int h){if(l >= h){return;}int p =parttion(a , l , h);quick(a , l , p -1);quick(a , p +1, h);}}