首页 > 代码库 > 关于数组的几个小题目-冒泡排序、二分查找、直接选择排序、反转数组
关于数组的几个小题目-冒泡排序、二分查找、直接选择排序、反转数组
1. 实现冒泡排序算法,对比相邻元素,如果满足条件就叫唤元素值,把较小的元素移动到数组前面,把较大的元素移动到数组的后面,这样较小的元素就逐渐从底部上升到顶部,排到前面了。
public class zuoye14_maopaopaixu { public static void main(String[] args){ int[] array = new int[]{12,45,21,35,65,24,43}; for(int i=0;i<array.length;i++){ for(int j=0;j<array.length-1;j++){ if(array[i]<array[j]){ int temp=array[i]; array[i]=array[j]; array[j]=temp; } } } for(int i=0;i<array.length;i++){ System.out.print(array[i]+" "); } }}
2.实现二分查找法。
public class zuoye15_erfenchazhao { public static void main(String[] args){ int[] array = new int[]{12,45,21,35,65,24,43}; for(int i=0;i<array.length;i++){ for(int j=0;j<array.length-1;j++){ if(array[i]<array[j]){ int temp=array[i]; array[i]=array[j]; array[j]=temp; } } } int left,mid,right; left=0; right=array.length-1; mid=(left+right)/2; while(array[mid]!=45){ if(45>array[mid]){ left=mid+1; } else if(45<array[mid]){ right=mid-1; } mid=(left+right)/2; } System.out.println(mid); }}
3.采用多种算法,模拟摇奖:从1-36中随机抽出8个不重复的数字
import java.util.Arrays;import java.util.Random;public class zuoye13_yaojiangsuijishu { public static void main(String[] args){ int[] array = new int[8]; //定义一个数组来存放摇到的号 Random a = new Random(); int s = a.nextInt(36); //生成一个随机数 if(s!=0)array[0]=s; //将第一个随机数给0号位 for(int i=1;i<8;i++){ //利用循环去生成其它的随机数 s=a.nextInt(36); for(int j=0;j<i;j++){ //利用循环去进行比较 if(array[j]!=s && s!=0){ //与之前的每个序号位上的值进行比较 array[i]=s; } else{ i--; break; } } } Arrays.sort(array); for(int i=0;i<array.length;i++){ System.out.print(array[i]+" "); } }}
4、直接选择排序,就是将指定排序位置与其它数组元素分别对比,如果满足条件就交换元素值,区别冒泡排序,不是交换相邻元素,而是把满足条件的元素与指定的排序位置交换。
public class zuoye18_zhijiepaixu { public static void main(String[] args){ int[] array = new int[]{2,4,5,123,55,667,32,356}; int index; for(int i=1;i<array.length;i++){ index=0; for(int j=1;j<=array.length-i;j++){ if(array[j]>array[index]){ index=j; } } int temp=array[array.length-i]; array[array.length-i]=array[index]; array[index]=temp; } for(int k:array){System.out.println(k);} }}
5、反转数组,将数组进行反转,把数组最后一个元素与第一个元素替换,倒数第二个与第二个元素替换,依此类推,直到把所有数组元素反转替换。
public class zuoye19_fanzhuanshuzu { public static void main(String[] args){ int[] array = new int[]{123,45,66,33,68,24,89}; int temp; int len = array.length; for(int i=0;i<len/2;i++){ temp=array[i]; array[i]=array[len-1-i]; array[len-1-i]=temp; } for(int j:array){System.out.print(j+" ");} }}
关于数组的几个小题目-冒泡排序、二分查找、直接选择排序、反转数组
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。