算法
Java常见算法
1.冒泡排序
1 package com.zhang.算法; 2 3 public class 冒泡排序 { 4 public static void main(String[] args) { 5 int[] zhang = new int[]{-100,500,800,100,-200,-900,900,800,-1000,50,50000000,90}; 6 7 //控制轮数 8 for (int i = 0; i <zhang.length-1; i++) { 9 //控制交换次数 每一轮都少交换一次 所以 zhang.length -1 -i 10 for (int j = 0; j <zhang.length-1-i ; j++) { 11 // //从小到大 12 if (zhang[j] > zhang[j+1]){ 13 int temp = zhang[j]; 14 zhang[j] = zhang[j+1]; 15 zhang[j+1] = temp; 16 } 17 //从大到小 18 // if(zhang[j] < zhang[j+1]){ 19 // int temp = zhang[j]; 20 // zhang[j] = zhang[j+1]; 21 // zhang[j+1] = temp; 22 // } 23 } 24 } 25 for (int i = 0; i < zhang.length; i++) { 26 System.out.println("数组顺序为"+zhang[i]+"\n"); 27 } 28 //二分查找 29 int start = 0; 30 int end = zhang.length-1; 31 int data = 900; 32 while (start<=end){ 33 //获取中间值 34 int middle = (start + end ) / 2; 35 36 if ( zhang[middle] > data){ 37 end = middle - 1; 38 }else if (zhang[middle] < data){ 39 start = middle+1; 40 }else if (zhang[middle] == data){ 41 System.out.println("找到了 "+zhang[middle]+"索引为"+middle); 42 break; 43 } 44 } 45 } 46 }
2.二分查找
package com.zhang.算法; import javafx.scene.image.Image; import javax.sound.midi.Soundbank; public class 二分查找 { public static void main(String[] args) { // write your code here int[] zhang = new int[]{-100,-50,50,600,900,1500,6900,10000}; //开始位置 int start = 0; //结束位置 int end = zhang.length-1; //查找值 int data = -100; while (start <= end){ int middle = ( start + end) / 2; System.out.println("中间值为" + ":"+zhang[middle]); if (zhang[middle] > data){ end = middle-1; System.out.println("中间值索引为" + ":"+middle); System.out.println("结束位置值"+end); }else if(zhang[middle] < data){ start =middle+1; System.out.println("开始索引为"+start+"结束位置是:"+end+"中间值是:"+zhang[( start + end) / 2]+"索引是"+(start + end) / 2); // break; }else { System.out.println("找到了索引值为:"+middle); break; } } } }

浙公网安备 33010602011771号