【数据结构】【直接排序法】Java代码
public class 直接排序 {
/**
* 直接排序法 仅排序1轮
* @param arr 数组
* @param ji 基准索引,填写几,就以谁为基准进行一次划分
*/
public static void qsort(int[] arr, int ji) {
int l=0;
int r=arr.length-1;
while(l<r){
while(l<r&&arr[r]>arr[ji]) r--;
if(l<r) {
int temp=arr[r];
arr[r]=arr[ji];
arr[ji]=temp;
ji=r;
}
while(l<r&&arr[l]<arr[ji]) l++;
if(l<r) {
int temp=arr[l];
arr[l]=arr[ji];
arr[ji]=temp;
ji=l;
}
printarr(arr);
}
}
/**
* 直接排序法 多轮划分
* @param arr 数组
* @param lun 基准索引,填写0,则从0开始,以其为基准,进行划分
*/
public static void qsortAll(int[] arr, int lun) {
if((arr.length-1)==lun) return;
int ji=lun;
int l=0;
int r=arr.length-1;
while(l<r){
while(l<r&&arr[r]>arr[ji]) r--;
if(l<r) {
int temp=arr[r];
arr[r]=arr[ji];
arr[ji]=temp;
ji=r;
}
while(l<r&&arr[l]<arr[ji]) l++;
if(l<r) {
int temp=arr[l];
arr[l]=arr[ji];
arr[ji]=temp;
ji=l;
}
}
printarr(arr);
qsortAll(arr,++lun);
}
/**
* 用来输出数组
* @param arr 要输出的数组
*/
public static void printarr(int[] arr){
for (int i:arr) {
System.out.print(i+"\t");
}
System.out.println();
}
/**
* 主方法
* @param args
*/
public static void main(String[] args) {
int[] arr = new int[]{410,10,80,9,70,4};
// int[] arr = new int[]{46,79,56,38,40,84};
qsortAll(arr, 0);
for (int i:arr) {
System.out.print(i+"\t");
}
}
}
// for(r=arr.length-1;r>0;r--){
// if(arr[r]<arr[ji]){
// int temp = arr[r];
// arr[r]=arr[ji];
// arr[ji]=temp;
// ji=r;
// printarr(arr);
// break;
// }
// }
// for(l=0;l<arr.length;l++){
// if(arr[l]>arr[ji]){
// int temp = arr[l];
// arr[l]=arr[ji];
// arr[ji]=temp;
// ji=l;
// printarr(arr);
// break;
// }
// }
【数据结构】【直接排序法】Java代码的更多相关文章
- 专题 查找与排序的Java代码实现(一)
专题 查找与排序的Java代码实现(一) 查找(Searching) 线性查找(linear search) 属于无序查找算法,适合于存储结构为顺序存储或链接存储的线性表. 基本思想:从数据结构线形表 ...
- 排序算法Java代码实现(三)—— 插入排序 和 希尔排序
因为希尔排序的核心思想是插入排序,所以本篇将两篇排序一起记录 本篇内容: 插入排序 希尔排序 (一)插入排序 算法思想: 把n个待排序的元素看成一个有序表和一个无序表,开始时有序表中只有一个元素,无序 ...
- 排序算法Java代码实现(一)—— 选择排序
以下几篇随笔都是记录的我实现八大排序的代码,主要是贴出代码吧,讲解什么的都没有,主要是为了方便我自己复习,哈哈,如果看不明白,也不要说我坑哦! 本片分为两部分代码: 常用方法封装 排序算法里需要频繁使 ...
- 选择排序法-java详解案例
/** * 功能:选择排序法 * 思想:第一次从R[0]-R[N-1]中选取最小值,与R[0]交换,第二次从R[1]-R[N-1]中选取最小值,与R[1]交换, * 第三次从R[2]-R[N-1]中 ...
- 排序算法Java代码实现(四)—— 归并排序
本篇内容: 归并排序 归并排序 算法思想: 将两个或两个以上的有序表合并成一个新的有序表, 即把待排序序列分成若干个子序列,每个子序列是有序的,然后在把有序子序列合并为整体有序序列. 此算法分为两步: ...
- 排序算法Java代码实现(六)—— 堆排序
本片内容: 堆排序 堆排序 最大堆: 二叉堆是完全二叉树或者是近似完全二叉树, 当父结点的键值总是大于或等于任何一个子节点的键值时为最大堆.(父节点大于任何一个子节点) 算法思想: 把n个元素建立最大 ...
- 排序算法Java代码实现(五)—— 快速排序
本篇内容: 快速排序 快速排序 算法思想: 通过一趟排序将要排序的数据分割成独立的两部分, 其中一部分的所有数据都比另外一部分的所有数据都要小, 然后再按此方法对这两部分数据分别进行快速排序, 整个排 ...
- Java - 选择性排序 PHP || Java 代码对比
int [] array1 = {1,3,5,7,9,10,2,15,154,10,2,188,200};//定义一个数组,内容为混乱大小 int index = 0;//定义一个最大值或最小值的位置 ...
- 八大排序算法java代码
1.冒泡排序 public static void main(String[] args) { int[] arr = {1,4,2,9,5,7,6}; System.out.println(&quo ...
- 排序算法Java代码实现(二)—— 冒泡排序
本篇内容: 冒泡排序 冒泡排序 算法思想: 冒泡排序的原理是:从左到右,相邻元素进行比较. 每次比较一轮,就会找到序列中最大的一个或最小的一个.这个数就会从序列的最右边冒出来. 代码实现: /** * ...
随机推荐
- union联合体的缺陷
传统的 union 联合体在 C++ 中虽然提供了一种能够在相同的内存空间内存储多种不同类型的方式,但它也有一些显著的缺陷和限制.这些缺陷让 union 的使用不太安全,尤其是在复杂的程序中.以下是传 ...
- ASP 封装基本身份认证( HTTP Basic Authenticate)辅助类
最近修改一个古老的asp程序,需要为单独几个页面进行基本身份认证.由于IIS自带的设置基本身份认证是针对文件夹的,而这几个页面又不方便挪动位置,幸好在网上找到一个asp实现WWW-Authentica ...
- C++20中对于并发方面的进步
在当今的编程世界中,并发处理能力变得越来越重要.C++20 在并发方面带来了一些进步,使开发者能够更高效.更安全地编写多线程应用程序.这些进步主要包括: 作用域线程(Scoped Threads) 停 ...
- os.environ["CUDA_DEVICE_ORDER"] = '0'
这个总结来自:博客 os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID" # 按照PCI_BUS_ID顺序从0开始排列G ...
- 精彩回顾|【ACDU 中国行·成都站】数据库主题交流活动成功举办!
2023年10月14日下午,[ACDU 中国行·成都站]在成都市武侯区星宸假日酒店圆满落下帷幕.本次活动由中国数据库联盟(ACDU)联合墨天轮社区主办,围绕「数据库技术及应用」这一主题,六位数据库资深 ...
- Oracle、MySQL等数据库故障处理优质文章分享 | 10月汇总
墨天轮社区于9月起持续举办[聊聊故障处理那些事儿]DBA专题征文活动,每月进行评优发奖,鼓励大家记录工作中遇到的数据库故障处理过程,不仅用于自我复盘与分析,同时也能帮助其他的同仁们避坑. 上月为大家梳 ...
- kubernetes中pod的隔离策略
配置容器级别的安全控制 使用宿主机的网络模式 可以通过设置pod的spec的hostNetwork参数为true开启容器的"host"network模式 spec: hostNet ...
- KubeKey 部署 K8s v1.28.8 实战
在某些生产环境下,我们仅需要一个原生的 K8s 集群,无需部署 KubeSphere 这样的图形化管理控制台.在我们已有的技术栈里,已经习惯了利用 KubeKey 部署 KubeSphere 和 K8 ...
- 项目运行时,tomcat服务器端口被占用
1.查看tomcat配置文件: 2.查看项目控制台的打印信息: 3.dos命令行解决端口占用 (1)dos命令模式下输入: netstat -ano (进入dos命令:Win + R ,输入cmd ) ...
- 一起来看看大佬是怎样配置nginx虚拟主机
在真实的服务器环境,为了充分利用服务器资源,一台nginx web服务器会同时配置N个虚拟主机,这样可以充分利用服务器的资源,方便管理员的统一管理 配置nginx虚拟主机首先肯定要先部署咱们的ngin ...