首页 > 代码库 > 数组的小练习

数组的小练习

1.冒泡排序

int[] arr = {5,58,67,44,9,0,33};
public static void main(String[] args) {
int[] arr = {5,58,67,44,9,0,33};
int[] arr1 = {5,58,67,44,9,0,33};

//    System.out.println(Arrays.equals(arr, arr1));//数组的方法,通过Arrays调用,静态方法。
//    
//    int[] newArr = Arrays.copyOfRange(arr, 0, 5);
//    p(newArr);

//直接选择排序,取出最大数的索引值然后依次比较,在外层循环里进行交换
for (int i = 0; i < arr.length; i++) {
  int indexMax = i;
  for (int j = i+1; j < arr.length; j++) {
    if (arr[indexMax]<arr[j]) {
      indexMax = j;
    }
  }
  int temp = arr[i];//完成相互替换,赋值过程
  arr[i] = arr[indexMax];
  arr[indexMax] = temp;
}
p(arr);



}
public static void p(int[] newArr){
  for (int i = 0; i < newArr.length; i++) {
    System.out.print(newArr[i]+" ");
  }
  System.out.println();
}

 



2.提供两个数组,输入上边数组提供的星座,返回星座对应的日期区间范围。

public static void main(String[] args) {
  String[] xzName = { "白羊", "金牛", "双子", "巨蟹", "狮子", "处女", "天秤", "天蝎", "射手", "摩羯", "水瓶", "双鱼" };
  String[] xzDate = { "03月21日─04月20日", "04月21日─05月20日", "05月21日─06月21日", "06月22日─07月22日", "07月23日─08月22日", "08月23日─09月22日", "09月23日─10月22日", "10月23日─11月21日", "11月22日─12月21日", "12月22日─01月19日", "01月20日─02月18日", "02月19日─03月20日" };

  String str = "处女,天秤,天蝎";//输入需要传入的星座

  int index = see(xzName,str);//调用see()方法,返回传入字符串对应的索引值
  String[] str_s = str.split(",");//分割传入的字符串,用数组存

  for (int i = index; i < index+str_s.length; i++) {//遍历出每一个对应的索引值
    System.out.println(xzDate[i]);//输出索引值对应的。。。
  }
}
public static int see(String[] a,String b){

  String[] b_s = b.split(",");//分割传入的字符串,用数组存

  for (int i = 0; i < b_s.length; i++) {//遍历传入的字符串

    for (int j = 0; j < a.length; j++) {//遍历整个数组
      if (a[j].equals(b_s[i])) {//取出对应的索引值
        return j;//返回索引值
      }
    }

  }
  return 0;    
}

 

数组的小练习