JAVA排序算法

JAVA排序算法

1、冒泡排序

int size = 30;
int [] arr = new int arr[size];
int arr.length = a;
int temp;
boolen flag = false
for(int i=0;i<a-1;i++){
	for(int j=0;j<a-1-i;j++){
		if(arr[j]<arr[j+1]);
		temp = arr[j];
		arr[j] = arr[j+1];
		arr[j+1] = temp;
	}
}

if(!flag){
	break;
}else{
	flag = false;
}
  • 封装↓
public class BubbleSort {
 public static void main(String[] args) {
//        int[] arr = {3, 9, -1, 10, -2};
     int size = 8;
     int[] arr = new int[size];
     for (int i = 0; i < arr.length; i++) {
         arr[i] = (int) (Math.random()*size);
     }
     System.out.println(Arrays.toString(arr));
     sort(arr);
 }

  //小到大排序
 public static void sort(int[] arr) {
     int a = arr.length;
     int temp;//临时变量
     boolean flag = false;//标记是否发生变化
     for (int i = 0; i < a - 1; i++) {

         for (int j = 0; j < a - 1 - i; j++) {
             if (arr[j] > arr[j + 1]) {//比较大小,逆序交换
                 flag = true;
                 temp = arr[j];
                 arr[j] = arr[j + 1];
                 arr[j + 1] = temp;
             }
         }
         System.out.println("第" + (i + 1) + "次排序结果");
         System.out.println(Arrays.toString(arr));

         if (!flag) {
             break;
         } else {
             flag = false;
         }
     }
 }
}

2、选择排序

import java.util.Arrays;

//选择排序,假定第一个数为最小数,一直往后比较直到找出最小数交换。
//时间复杂度O(n^2)
public class SelectSort {

 public static void main(String[] args) {
     int size = 12;
     int[] arr = new int[size];
     for (int i = 0; i < size; i++) {
         arr[i] = (int) (Math.random() * size);
     }
//   int [] arr = {20,-1,0,-9,7,6};
     System.out.println("排序前");
     System.out.println(Arrays.toString(arr));

     selectsort(arr);
 }

 public static void selectsort(int[] arr) {

     for (int i = 0; i < arr.length - 1; i++) {
         int minindx = 0;//假定最小数下标为第一数
         int min = arr[0];//假设最小数的值为第一个数
         for (int j = i + 1; j < arr.length; j++) { //走第二遍从第二位数字开始
             if (min > arr[j]) {//如果假定的最下值比后面的大,进行交换
                 min = arr[j];
                 minindx = j;
             }
         }
         if (minindx != i) {
             arr[minindx] = arr[i];
             arr[i] = min;
         }
         
         System.out.println("第" + (i + 1) + "次排序");
         System.out.println(Arrays.toString(arr));
     }
 }
}

······待更

相关推荐