黑马基础测试2
来源:互联网 发布:算法工程师是什么专业 编辑:程序博客网 时间:2024/06/02 12:52
package com.itheima;/** * 2、 请列举您了解的一些排序算法,并用Java语言实现一个效率较高的。 * * 排序有:冒泡排序,插入排序,快速排序,选择排序 * * @author 刘江涛 * */public class Test2 {// 定义初始数组static int[] a = { 65, 6, 64, 241, 75, 21, 5, 31, 5, 51, 85, 18 };public static void main(String[] args) {// 打印未排序的数组for (int i = 0; i < a.length; i++) {System.out.print(a[i] + " ");}System.out.println();sort(a);// 调用排序算法// 打印排好的数组for (int i = 0; i < a.length; i++) {System.out.print(a[i] + " ");}}private static void sort(int[] a2) {if (a2.length > 0)// 检查数组长度是否为0{quickSort(a2, 0, a2.length - 1);// 调用快排方法}}// 快排方法的实现static void quickSort(int[] list, int low, int high) {if (low < high) {// 如果low下标依然小于high下标,继续递归调用int middle = getMiddle(list, low, high);// 把数组分成两部分quickSort(list, low, middle - 1);// 递归排序中轴左边quickSort(list, middle + 1, high);// 递归排序中轴右边}}// 获得中轴private static int getMiddle(int[] list, int low, int high) {int temp = list[low];// 数组的第一个作为中轴while (low < high) {while (low < high && list[high] >= temp) {// 如果high下标对应的值大于中轴的值,则执行里面语句high--;// high下标减1}// 如果high下标对应的值不再大于中轴的值,或者low已经大于highlist[low] = list[high];// 将小的移动到低端while (low < high && list[low] <= temp) {// 如果low下标对应的值小于中轴的值,则执行里面语句low++;// low下标加1}list[high] = list[low];// 将大的数据移动到高端}list[low] = temp;// 找到的中轴,小的在中轴左边,大的在中轴右边return low;// 返回中轴}}
0 0
- 黑马基础测试2
- 黑马程序员—JAVA 基础测试2
- 黑马基础测试题
- “黑马程序员”基础测试
- 黑马程序员-基础测试
- 黑马基础测试1
- 黑马基础测试3
- 黑马基础测试4
- 黑马基础测试5
- 黑马基础测试6
- 黑马基础测试7
- 黑马基础测试8
- 黑马基础测试9
- 黑马基础测试10
- 黑马程序员——黑马基础测试
- 黑马程序员------黑马基础测试题参考
- 黑马程序员_基础测试
- 黑马基础测试题整理
- 下一秒的谁--2009-06-04 博客搬家
- II7.5,HTTP 错误 500.19,自己试出来的
- 黑马基础测试1
- 纸飞机 --2013-08-08博客搬家
- LeetCode179:Largest Number
- 黑马基础测试2
- 落芒 --2015-05-19 博客搬家
- 黑马基础测试3
- maven执行update命令时报org/apache/maven/shared/filtering/MavenFilteringException错误
- 黑马基础测试4
- xss攻击入门
- maven编译出现编码 gbk 的不可映射字符错误
- 黑马基础测试5
- 正则表达式说明