冒泡排序:
package com.example.interview.leecode.codel;import java.util.Arrays;public class CodeL003 {//冒泡排序public static void main(String[] args) {int[] tests = {12, 434, 234, 32324, 3};System.out.println(Arrays.toString(new CodeL003().array(tests)));}//若逻辑就是第一层和第二层对比,然后就是找出一个最大的public int[] array(int[] arr) {//这是找出一个最大值for (int i = 0; i < arr.length - 1; i++) {//这是对比所有的数据for (int i1 = 0; i1 < arr.length - 1 - i; i1++) {if (arr[i1] > arr[i1 + 1]) {int i2 = arr[i1];arr[i1] = arr[i1 + 1];arr[i1 + 1] = i2;}}}return arr;}}
简单排序:
public static void sort(int[] a) {for (int i = 0; i < a.length; i++) {int min = i;//选出之后待排序中值最小的位置for (int j = i + 1; j < a.length; j++) {if (a[j] < a[min]) {min = j;}}//最小值不等于当前值时进行交换if (min != i) {int temp = a[i];a[i] = a[min];a[min] = temp;}}}
使用递归的快速排序:
public static void sort(int[] a, int low, int high) {//已经排完if (low >= high) {return;}int left = low;int right = high;//保存基准值int pivot = a[left];while (left < right) {//从后向前找到比基准小的元素while (left < right && a[right] >= pivot)right--;a[left] = a[right];//从前往后找到比基准大的元素while (left < right && a[left] <= pivot)left++;a[right] = a[left];}// 放置基准值,准备分治递归快排a[left] = pivot;sort(a, low, left - 1);sort(a, left + 1, high);}
