数组简单排序

来源:互联网 发布:电影购票系统java 编辑:程序博客网 时间:2024/06/09 20:33
package cn.sdut.test;import java.util.Arrays;import java.util.Collections;/* * 数组排序操作 */public class Test01 {public static void main(String[] args) {int[] a = new int[] { 1,1, 4, 8, 3, 9, 32, 25, 65, 12, 35, 68 };bubbleSort(a);printArray(a);reverse(a);printArray(a);selectionSort(a);printArray(a);reverse(a);printArray(a);quickSort(a, 0, a.length - 1);printArray(a);}// 快速排序private static void quickSort(int[] a, int begin, int end) {int bpoint = begin;int epoint = end;int flag = a[begin];while (bpoint < epoint) {while (bpoint < epoint) {if (a[epoint] < flag) {a[bpoint] = a[epoint];bpoint++;break;} else {epoint--;}}while (bpoint < epoint) {if (a[bpoint] > flag) {a[epoint] = a[bpoint];epoint--;break;} else {bpoint++;}}}int mid = (bpoint+epoint)/2;a[mid] = flag;if((mid-1)>begin){quickSort(a, begin, mid-1);}if((mid+1)<end){quickSort(a, mid+1, end);}}public static  void quicksort(int[] a,int low,int high){//Arrays.sort(a);int flag = a[low];//立一个标准int l = low;//设立指针int h = high;//设立指针while(l<h){//从右边找一个比flag小的数放在左边坑里while(l<h){if(a[h]<flag){a[l] = a[h];l++;break;}else{h--;}}//从左边找一个比flag大的数放在右边坑里while(l<h){if(a[l]>flag){a[h] = a[l];h--;break;}else{l++;}}}//中间坑放flagint mid = (l+h)/2;a[mid] = flag;if((mid-1)>low) quicksort(a, low, mid-1);if((mid+1)<high) quicksort(a, mid+1, high);}// 选择则排序private static void selectionSort(int[] a) {for (int i = 0; i < a.length - 1; i++) {int index = i;for (int j = i + 1; j < a.length; j++) {if (a[index] > a[j]) {index = j;}}if (index != i) {int t = a[index];a[index] = a[i];a[i] = t;}}}// 倒序private static void reverse(int[] a) {for (int begin = 0, end = a.length - 1; begin <= end; begin++, end--) {int t = a[begin];a[begin] = a[end];a[end] = t;}}// 冒泡private static void bubbleSort(int[] a) {for (int i = 0; i < a.length - 1; i++) {for (int j = 0; j < a.length - i - 1; j++) {if (a[j] > a[j + 1]) {int t = a[j];a[j] = a[j + 1];a[j + 1] = t;}}}}// 数组打印private static void printArray(int[] a) {for (int i = 0; i < a.length; i++) {if (i == a.length - 1) {System.out.println(a[i]);} else {System.out.print(a[i] + " ");}}}}

原创粉丝点击