冒泡排序原则排序

来源:互联网 发布:阿里云创建快照 编辑:程序博客网 时间:2024/05/17 08:22


package qianfeng;

import java.util.Arrays;

/*
  静态成员方法的使用
  
  Arrays Java中的数据工具类,集成了大量数组中常用的方法使用类名直接调用
  
  自定义Arrays工具类,所用的方法都要用【类名】来调用
  所以 这些方法都是静态方法
  
  作业:
   1. 完成工具类的工具扩充  二分法查找 自己实现arrayToString方法
 */
class ArraysTool {
 //自定义完成一个排序算法
 
 //bubble
 public static boolean bubbleSort(int[] arr) {
  //1.参数合法性判断
  if (arr == null || arr.length == 0) {
   System.out.println("Input Param is invalid!");
   return false;
  }
  
  boolean flag = true;
  
  //外部循环控制比较的轮次
  for (int i = 0; i < arr.length - 1; i++) {
   //内部循环控制当前轮次要进行多少次两两比较
   for (int j = 0; j < arr.length - 1 - i; j++) {
    //两两比较,符合条件,进行交换
    if (arr[j] < arr[j + 1]) {
     int temp = arr[j];
     arr[j] = arr[j + 1];
     arr[j + 1] = temp;
     flag = false;
    } //if
   }// for j
   
   if (flag) {
    break;
   }
   flag = true;
  }// for i
  
  return true;
 }
 
 //select
 public static boolean selectSort(int[] arr) {
  //参数合法性判断
  if (arr == null || arr.length == 0) {
   System.out.println("Input Param is invalid!");
   return false;
  }
  
  //外层控制遍历找寻最值的轮次
  for (int i = 0; i < arr.length - 1; i++) {
   
   int index = i;
   //利用遍历找出数组中的最值
   for (int j = i + 1; j < arr.length; j++) {
    if (arr[index] < arr[j]) {
     index = j;
    }//if
   }//for j
   
   if (index != i) {
    int temp = arr[index];
    arr[index] = arr[i];
    arr[i] = temp;
   }
   
  }//for i
  
  return true;
 }

}

public class Demo4 {
 public static void main(String[] args) {
  int[] arr = {1, 3, 5, 7, 9, 2, 4, 6, 8, 10};
  
  Arrays.sort(arr);
  
  String str = Arrays.toString(arr);
  System.out.println("str = " + str);
  
  //自定义的工具类, 使用类名直接调用静态方法
 // ArraysTool.bubbleSort(arr);
  ArraysTool.selectSort(arr);
  System.out.println(Arrays.toString(arr));
 }
}

原创粉丝点击