------- android培训、java培训、期待与您交流! ----------
自己写了一个DataSorter类,对数组进行排序,虽然在实际开发中没什么用,但十分锻炼思维。供大家参考一下。
public class DataSorter { public static void main(String[] args) { int[] arr = {8,7,6,5,4,3,2,1}; shellSort(arr); print(arr); } public static void bubbleSort(int[] arr) { for(int i = 0; i < arr.length - 1; i++) { for(int j = 0; j < arr.length - 1 - i; j++) { if(arr[j] > arr[j + 1]) { arr[j] = arr[j] ^ arr[j + 1]; arr[j + 1] = arr[j] ^ arr[j + 1]; arr[j] = arr[j] ^ arr[j + 1]; } } } } public static void selectionSort(int[] arr) { int tmp; for(int i = 0; i < arr.length - 1; i++) { tmp = i; for(int j = i + 1; j < arr.length; j++) if(arr[tmp] > arr[j]) tmp = j; if(tmp != i){ arr[i] = arr[i] ^ arr[tmp]; arr[tmp] = arr[i] ^ arr[tmp]; arr[i] = arr[i] ^ arr[tmp]; } } } public static void insertionSort(int[] arr) { int tmp; for(int i = 0; i < arr.length - 1; i++) { tmp = arr[i+1]; for(int j = i; j >= 0; j--){ if(arr[j] > tmp) arr[j + 1] = arr[j]; else{ arr[j + 1] = tmp; break; } } } } public static void shellSort(int[] arr) { for (int group = arr.length / 2; group > 0; group /= 2){ for (int i = group; i < arr.length; i++){ for (int j = i - group; j >= 0; j -= group){ if (arr[j] > arr[j + group]){ arr[j] = arr[j] ^ arr[j + group]; arr[j + group] = arr[j] ^ arr[j + group]; arr[j] = arr[j] ^ arr[j + group]; } } } } } public static void quickSort(int[] arr){ quickSort(arr,0,arr.length - 1); } public static void quickSort(int[] arr,int start,int stop) { int tmp = arr[start],i = start,j = stop; while(i < j){ if(arr[i + 1] > tmp){ while(i < j){ if(arr[j] < tmp){ arr[i] = arr[j]; break; } else j--; } if(i < j){ i++; arr[j] = arr[i]; j--; } }else{ arr[i] = arr[i + 1]; i++; } } if(i > start) arr[i] = tmp; if(i > start + 1) quickSort(arr,start,i - 1); if(i < stop - 1) quickSort(arr,i + 1,stop); } public static void print(int[] arr) { for(int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } System.out.println(); } }
相关推荐
"黑马程序员Javase笔记"是一个自学者在学习黑马程序员提供的Java全套课程过程中整理的笔记,主要涵盖了Java Standard Edition (Javase) 的核心内容。下面将详细讨论其中的关键知识点。 首先,DOS命令是操作系统中的...
C++黑马程序员学习资料,附赠《InterviewGuide第四版By阿秀》、《LeetCode刷题手册》、《背包问题九讲》、《算法图解》pdf版本,三个基础课程文档手册及三个实验项目,由简到繁分别为《通讯录管理系统》、《职工管理...
【标题】:“黑马程序员测试题部分答案”涵盖了在学习编程过程中可能会遇到的各类测试题目及其解答,主要由“黑马程序员”这个知名的IT教育机构的教学资源衍生而来。这些测试题目的答案,旨在帮助学习者检验自己的...
黑马程序员的Javaweb源码集是一个丰富的学习资源,包含实际项目案例和练习,覆盖了Web开发的基础到进阶内容。通过阅读和分析这些源码,学习者可以更好地理解Web开发流程,学习如何组织代码结构,以及掌握常见的设计...
黑马程序员 C语言提高课程配套课件 黑马程序员 C语言提高课程配套课件
黑马程序员——Android移动开发源码
layui ajax 没有node.js功能都可用,高度类似。 黑马刘龙彬老师主讲的大事件项目,整体看完,给...最后,再次给黑马程序员和刘老师点个赞。 说明--ShowDoc https://www.showdoc.com.cn/escook?page_id=3707158761215217
黑马程序员,C++核心编程
传智播客旗下黑马程序员c++视频课程内部讲义 就是上课时老师翻阅的那个讲义
内容概要:通过带着读者手写简化版 Spring 框架了解 Spring 核心原理。在手写Spring源码的过程中会摘取整体框架中的核心逻辑,简化代码实现过程保留核心功能, ...本代码基于黑马程序员的课程,最好根据课程同步学习
这是根据黑马程序员中关于Vue11天课程中,跟着视频编写的代码,一行行跟着写出来的,连备注基本也是和视频一样,用的是vscode开发工具,上传的资料已经把node_modules删除了,进入目录后,用cnpm i重新安装一下就...
在B站黑马程序员的Python教程中,你将深入理解Python的基础概念,包括: 1. **变量与数据类型**:Python支持多种数据类型,如整型(int)、浮点型(float)、字符串(str)和布尔型(bool)。此外,还有列表(list...
该项目为黑马程序员开发的“黑马大事件”项目设计源码,主要由Java语言编写,包含39个文件,其中包括32个Java源文件、2个XML配置文件、1个Git忽略文件、1个属性文件以及1个Maven项目构建文件等。该源码集合了丰富的...
本笔记基于黑马程序员的课程内容,全面覆盖了Java Web的基础知识,包括前端开发技术如HTML、CSS、JavaScript,以及后端服务器端的Java Servlet和JSP(Java Server Pages)。 一、前端基础 1. ...
"黑马程序员毕业设计资料,代码,数据库设计论文等" 这个标题表明这是一份来自“黑马程序员”教育平台的资源集合,主要用于帮助学生进行毕业设计。其中包含了项目代码、数据库设计相关的论文等内容,适用于计算机科学...
黑马程序员JavaEE49期
8. **项目实战**:“黑马程序员”提供的源码是实战项目的实例,涵盖了上述所有技术点,读者可以跟随源码逐步理解并实现每个功能模块,从而提升实际开发能力。 总之,《Java Web程序设计任务教程》通过丰富的实例和...
黑马程序员-SpringCloud-学习笔记-03-Eureka注册中心
Netty基础,用于学习Netty,参考黑马程序员的netty教程