数组简单排序
来源:互联网 发布:电影购票系统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] + " ");}}}}
阅读全文
0 0
- 二维数组简单排序
- 数组简单排序
- 简单数组排序
- 简单单元测试 数组排序
- 简单之简单----数组排序
- c#数组简单排序方法
- 排序数组的简单方法
- IOS 数组的简单排序
- java数组与简单排序
- 数组选择(简单)排序
- JAVA数据结构-数组&简单排序
- 数组简单操作排序、查找
- 简单的数组排序、反转
- iOS数组排序简单介绍
- JS简单的数组排序
- 排序之简单插入排序(数组)
- Android排序数组的简单方法
- 一个简单的数组排序程序
- JavaSE 注解和多线程
- Android静默安装 root提权方式
- 1269 Intersecting Lines
- TCP协议相关
- hdu 6165(dfs or bfs or tarjan+topsort)
- 数组简单排序
- 【剑指offer】面试题 49:丑数
- lua 数组的索引可以是负数
- 八皇后
- Spring之IOC
- HDU6162 Ch’s gift【LCA】
- 描述 求一个字符串的最长递增子序列的长度 如:dabdbf最长递增子序列就是abdf,长度为4 输入 第一行一个整数0<n<20,表示有n个字符串要处理 随后的n行,每行有一个字符串,该字符串的长度不
- Sublime搭建Java、C开发环境
- C#读取CSV文件并保存进数据库