当前位置: 首页 > news >正文

多语言快速排序算法

快速排序是一种高效的排序算法,使用分治法策略。它的基本思想是:选择一个元素作为“基准”(pivot),重新排序数列,所有比基准值小的元素摆放在基准前面,所有比基准值大的摆在基准的后面。在这个分区退出之后,该基准就处于数列的中间位置。这个过程称为分区(partition)操作。然后,递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。

Java版快速排序

public class QuickSort {public static void quickSort(int[] arr, int low, int high) {if (low < high) {int pivotIndex = partition(arr, low, high);quickSort(arr, low, pivotIndex - 1);  // 对基准左边的数组进行递归排序quickSort(arr, pivotIndex + 1, high); // 对基准右边的数组进行递归排序}}private static int partition(int[] arr, int low, int high) {int pivot = arr[high];int i = (low - 1); // 小于基准的元素的索引for (int j = low; j < high; j++) {if (arr[j] < pivot) {i++;swap(arr, i, j);}}swap(arr, i + 1, high);return i + 1;}private static void swap(int[] arr, int i, int j) {int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}public static void main(String args[]) {int[] arr = {10, 7, 8, 9, 1, 5};int n = arr.length;quickSort(arr, 0, n - 1);System.out.println("Sorted array: ");for (int i : arr) {System.out.print(i + " ");}}
}

Kotlin版快速排序

fun quickSort(arr: IntArray, low: Int, high: Int) {if (low < high) {val pi = partition(arr, low, high)quickSort(arr, low, pi - 1)quickSort(arr, pi + 1, high)}
}fun partition(arr: IntArray, low: Int, high: Int): Int {val pivot = arr[high]var i = low - 1for (j in low until high) {if (arr[j] < pivot) {i++arr[i] = arr[j].also { arr[j] = arr[i] }}}arr[i + 1] = arr[high].also { arr[high] = arr[i + 1] }return i + 1
}fun main() {val arr = intArrayOf(10, 7, 8, 9, 1, 5)val n = arr.sizequickSort(arr, 0, n - 1)println("Sorted array: ${arr.joinToString(" ")}")
}

C版快速排序

#include <stdio.h>void quickSort(int arr[], int low, int high) {if (low < high) {int pi = partition(arr, low, high);quickSort(arr, low, pi - 1);quickSort(arr, pi + 1, high);}
}int partition(int arr[], int low, int high) {int pivot = arr[high];int i = low - 1;for (int j = low; j < high; j++) {if (arr[j] < pivot) {i++;int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}int temp = arr[i + 1];arr[i + 1] = arr[high];arr[high] = temp;return i + 1;
}int main() {int arr[] = {10, 7, 8, 9, 1, 5};int n = sizeof(arr) / sizeof(arr[0]);quickSort(arr, 0, n - 1);printf("Sorted array: ");for (int i = 0; i < n; i++) {printf("%d ", arr[i]);}printf("\n");return 0;
}

C++版快速排序

#include <iostream>void quickSort(int arr[], int low, int high) {if (low < high) {int pi = partition(arr, low, high);quickSort(arr, low, pi - 1);quickSort(arr, pi + 1, high);}
}int partition(int arr[], int low, int high) {int pivot = arr[high];int i = low - 1;for (int j = low; j < high; j++) {if (arr[j] < pivot) {i++;std::swap(arr[i], arr[j]);}}std::swap(arr[i + 1], arr[high]);return i + 1;
}int main() {int arr[] = {10, 7, 8, 9, 1, 5};int n = sizeof(arr) / sizeof(arr[0]);quickSort(arr, 0, n - 1);std::cout << "Sorted array: ";for (int i = 0; i < n; i++) {std::cout << arr[i] << " ";}std::cout << std::endl;return 0;
}

Dart版快速排序

void quickSort(List<int> arr, int low, int high) {if (low < high) {int pivotIndex = partition(arr, low, high);quickSort(arr, low, pivotIndex - 1);quickSort(arr, pivotIndex + 1, high);}
}int partition(List<int> arr, int low, int high) {int pivot = arr[high];int i = low - 1;for (int j = low; j < high; j++) {if (arr[j] < pivot) {i++;swap(arr, i, j);}}swap(arr, i + 1, high);return i + 1;
}void swap(List<int> arr, int i, int j) {int temp = arr[i];arr[i] = arr[j];arr[j] = temp;
}void main() {List<int> arr = [10, 7, 8, 9, 1, 5];quickSort(arr, 0, arr.length - 1);print("Sorted array: $arr");
}

JavaScript版快速排序

function quickSort(arr, low, high) {if (low < high) {let pi = partition(arr, low, high);quickSort(arr, low, pi - 1);quickSort(arr, pi + 1, high);}
}function partition(arr, low, high) {let pivot = arr[high];let i = low - 1;for (let j = low; j < high; j++) {if (arr[j] < pivot) {i++;swap(arr, i, j);}}swap(arr, i + 1, high);return i + 1;
}function swap(arr, i, j) {let temp = arr[i];arr[i] = arr[j];arr[j] = temp;
}// 使用示例
let arr = [10, 7, 8, 9, 1, 5];
quickSort(arr, 0, arr.length - 1);
console.log("Sorted array:", arr);

汇编语言(Assembly Language asm)快速排序

以下是一个基本的 ARM 汇编语言快速排序算法示例,适用于运行 ARM 架构处理器的 Linux 系统。请注意,这个例子是针对 ARMv7 架构编写的,可能需要根据你的具体 ARM 架构版本做出调整。

.global quicksort.data
array: .word 10, -1, 8, 3, 2, -5, 4
length: .word 7.text
quicksort:push {r4-r11, lr}mov r1, #0ldr r2, =lengthldr r2, [r2]subs r2, r2, #1bl partitionpop {r4-r11, pc}partition:push {r4-r11, lr}mov r11, r1mov r10, r0ldr r4, [r0, r2, lsl #2]
partition_loop:ldr r3, [r10, r11, lsl #2]cmp r3, r4addge r11, r11, #1blt swapcmp r11, r2blt partition_loopbl swappop {r4-r11, pc}swap:push {r4-r11, lr}ldr r3, [r10, r1, lsl #2]ldr r12, [r10, r11, lsl #2]str r12, [r10, r1, lsl #2]str r3, [r10, r11, lsl #2]pop {r4-r11, pc}

在这个示例中,quicksort 函数是快速排序算法的入口点,partition 是用于分区的函数,而 swap 函数用于交换数组中的两个元素。这些函数使用 ARM 寄存器和指令来处理数组中的元素,并执行排序算法的步骤。

要运行这个程序,你需要在支持 ARM 架构的 Linux 系统上使用适当的汇编器和链接器。在不同的 ARM 架构版本(如 ARMv6、ARMv8)上,可能需要进行语法或指令集的调整。

请注意,这只是一个基本的示例,可能需要进一步的优化和调整以适应特定的需求和环境。

相关文章:

多语言快速排序算法

快速排序是一种高效的排序算法&#xff0c;使用分治法策略。它的基本思想是&#xff1a;选择一个元素作为“基准”&#xff08;pivot&#xff09;&#xff0c;重新排序数列&#xff0c;所有比基准值小的元素摆放在基准前面&#xff0c;所有比基准值大的摆在基准的后面。在这个分…...

opencv-图像梯度

目标 • 图像梯度&#xff0c;图像边界等 • 使用到的函数有&#xff1a;cv2.Sobel()&#xff0c;cv2.Schar()&#xff0c;cv2.Laplacian() 等 原理 梯度简单来说就是求导。 OpenCV 提供了三种不同的梯度滤波器&#xff0c;或者说高通滤波器&#xff1a;Sobel&#xff0c;Schar…...

linux centos7 安装nginx

1、添加CentOS 7 Nginx yum资源库,打开终端,使用以下命令: sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm2、安装nginx sudo yum install -y nginx3、启动nginx sudo systemctl start nginx.service开机自动启…...

Xilinx Zynq-7000系列FPGA实现视频拼接显示,提供两套工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐FPGA图像处理方案FPGA视频拼接叠加融合方案推荐 3、设计思路详解Video Mixer介绍 4、工程代码1&#xff1a;2路视频拼接 HDMI 输出PL 端 FPGA 逻辑设计PS 端 SDK 软件设计 5、工程代码2&#xff1a;4路视频拼接 HDMI 输出PL 端 FPGA 逻辑设…...

DAOS低时延与高性能RDMA网络

什么是RDMA RDMA&#xff08;Remote Direct Memory Access&#xff09;远程直接内存访问是一种技术&#xff0c;它使两台联网的计算机能够在主内存中交换数据&#xff0c;而无需依赖任何一台计算机的处理器、缓存或操作系统。与基于本地的直接内存访问 ( DMA ) 一样&#xff0c…...

城市管理实景三维:打造智慧城市的新引擎

城市管理实景三维&#xff1a;打造智慧城市的新引擎 在城市管理领域&#xff0c;实景三维技术正逐渐成为推动城市发展的新引擎。通过以精准的数字模型呈现城市真实场景&#xff0c;实景三维技术为城市决策提供了全新的思路和工具。从规划设计到交通管理&#xff0c;从环境保护到…...

Python3.11+Pyside6开发电影下载程序

VideoSave是一款使用Python3.11Pyside6编写的提供下载电影/电视剧的软件&#xff0c;支持注册、登录、搜索、下载、查看日志等功能&#xff0c;提供了Window、Mac系统安装包。 先上效果图 提供功能 节省寻找资源的时间 ⌚️模糊搜索指定影片 &#x1f434;查看影片下载日志 &…...

HCIP-七、IS-IS 综合实验

七、IS-IS 综合实验 实验拓扑实验需求及解法1.如图所示&#xff0c;配置所有路由器的接口IP地址。2.运行IS-IS&#xff0c;进程号13.IS-IS优化4.路径优化 实验拓扑 实验需求及解法 本实验模拟IS-IS综合网络&#xff0c;完成以下需求&#xff1a; 1.如图所示&#xff0c;配置所…...

广西桂林钢结构钣金折弯件3d扫描全尺寸偏差检测-CASAIM中科广电

钣金是一种针对金属薄板&#xff08;通常在6mm以下&#xff09;的综合冷加工工艺&#xff0c;包括剪、冲/切/复合、折、焊接、铆接、拼接、成型&#xff08;如汽车车身&#xff09;等&#xff0c;其显著的特征就是同一零件厚度一致&#xff0c;通过钣金工艺加工出的产品叫做钣金…...

飞翔的小鸟游戏

一.建一个bird的类&#xff0c;放入素材 二.代码 1.Bird类 package bird;import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.IOException;/** 小鸟类* */ public class Bird {int x;// 坐标int y;int width; // 宽高int height;BufferedIm…...

计算机网络之运输层

一、概述 物理层、数据链路层以及网络层它们共同解决了将主机通过异构网络互联起来所面临的的问题&#xff0c;实现了主机到主机的通信 但实际上在计算机网络中进行通信的真正实体是位于通信两端主机中的进程 如何为运行在不同主机上的应用进程提供直接的通信服务时运输层的任务…...

2023软件应用类下载系统平台源码/手机软件应用、新闻资讯下载站/软件库网站源码

源码简介&#xff1a; 这个是最新软件应用类平台源码、手机应用下载系统源码、软件应用市场下载站源码、新闻资讯软件下载。2023软件应用类平台源码/手机软件应用、新闻资讯下载站&#xff0c;它是软件库网站源码。 最新软件应用类平台源码 手机应用下载系统源码 软件应用市场…...

SkyWalking配置报警推送到企业微信

1、先在企业微信群里创建一个机器人&#xff0c;复制webhook的地址&#xff1a; 2、找到SkyWalking部署位置的alarm-settings.yml文件 编辑&#xff0c;在最后面加上此段配置 &#xff01;&#xff01;&#xff01;一定格式要对&#xff0c;不然一直报警报不出来按照网上指导…...

educoder中Hive -- 索引和动态分区调整

第1关:Hive -- 索引 ---创建mydb数据库 create database if not exists mydb; ---使用mydb数据库 use mydb; ---------- Begin ---------- ---创建staff表 create table staff( id int, name string, sex string) row format delimited fields terminated by , stored…...

http与https有什么区别,https攻击要如何防护

我们在浏览网站时&#xff0c;在网址的前面经常会看到http// 或者https//的显示。同样是http&#xff0c;加了s与不加s是有什么区别&#xff0c;加了s又有哪些用处。 http&#xff0c;中文叫做超文本传输协议。它是一种用于分布式、协作式和超媒体信息系统的应用层协议。是基于…...

nginx+keepalived

一、简介 很久没有配置keepalived了&#xff0c;最近业务医院需要配置前置机做转发&#xff0c;并且配置keepalived. 因为医院的生产环境和外界是完全隔离的&#xff0c;所以需要做前置机做网络请求转发 二、服务器列表 角色IP备注nginx keepalived master192.168.1.22ngin…...

Re51:读论文 Language Models as Knowledge Bases?

诸神缄默不语-个人CSDN博文目录 诸神缄默不语的论文阅读笔记和分类 论文名称&#xff1a;Language Models as Knowledge Bases? ArXiv网址&#xff1a;https://arxiv.org/abs/1909.01066 官方GitHub项目&#xff1a;https://github.com/facebookresearch/LAMA 本文是2019年…...

.NET 使用配置文件

我简单测试了一下json格式配置文件&#xff0c;在这里记录一下&#xff0c;方便以后查看。 需要引用的库&#xff1a; Microsoft.Extensions.Hosting 创建json格式文件&#xff1a;appsettings.json 在工程文件中包含json文件&#xff1a; <ItemGroup><Content In…...

vue 通过ref调用router-view子组件的方法

由于用的vue2.7版本&#xff0c;但用了vue3 setup的语法&#xff1b; 注意&#xff1a;是vue2的template结构&#xff0c;vue3的setup语法&#xff1b;非这种情况需要举一反三。 处理方案&#xff1a; 1、对router-view加上ref template修改 直接对router-view加上ref&#x…...

在全球碳市场中崭露头角的中碳CCNG

在全球气候治理的大背景下&#xff0c;中国碳中和发展集团有限公司&#xff08;简称中国碳中和&#xff09;正在成为全球碳交易市场的一个重要参与者。随着国际社会对碳排放的日益关注&#xff0c;中国碳中和凭借其在碳资产开发、咨询与管理等领域的深厚积累&#xff0c;正成为…...

机器学习损失函数:原理、选择与实战技巧

1. 机器学习中的损失函数&#xff1a;原理与实战解析在训练机器学习模型时&#xff0c;损失函数就像一位严格的教练&#xff0c;不断告诉模型"你现在的表现离完美还有多远"。作为从业十余年的算法工程师&#xff0c;我见过太多项目因为损失函数选择不当而导致效果不佳…...

VeriTrade代理验证技术:TLSNotary与ProxyTEE的融合应用

1. VeriTrade代理验证技术解析VeriTrade是一个典型的自动化交易代理系统&#xff0c;其核心创新点在于将TLSNotary协议与ProxyTEE技术相结合&#xff0c;构建了一个可验证的执行环境。这种架构设计主要解决了分布式系统中两个关键问题&#xff1a;一是如何证明代理确实执行了预…...

从POC到GA:MCP 2026多租户加密在Kubernetes+SPIFFE环境中的零信任密钥注入全流程(含OpenSSF审计评分98.6)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;MCP 2026多租户数据加密架构概览 MCP 2026 是面向云原生环境设计的多租户密码服务平台&#xff0c;其核心目标是在共享基础设施中实现租户间密钥隔离、策略自治与加密操作可审计。该架构采用“三平面分…...

为什么83%的MCP 2026早期部署集群在负载突增时触发非预期驱逐?3步诊断清单+自动修复脚本交付

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;MCP 2026边缘节点资源管理 MCP 2026&#xff08;Multi-Cloud Platform 2026&#xff09;定义了一套轻量、可插拔的边缘节点资源协同规范&#xff0c;聚焦于异构硬件抽象、实时资源感知与策略驱动的动态…...

终极解放双手:MAA明日方舟自动化助手完整指南

终极解放双手&#xff1a;MAA明日方舟自动化助手完整指南 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手&#xff0c;全日常一键长草&#xff01;| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: https://gitcode.com…...

Phi-4-mini-flash-reasoning多场景:从单题求解到批量PRD分析的扩展路径

Phi-4-mini-flash-reasoning多场景&#xff1a;从单题求解到批量PRD分析的扩展路径 1. 轻量级推理模型的核心价值 Phi-4-mini-flash-reasoning是一款专为结构化思维任务设计的轻量级文本推理模型。与通用大模型不同&#xff0c;它在数学推导、逻辑分析和长文本推理等场景展现…...

揭秘书匠策AI:毕业论文写作的“全能魔法师”现身!

在学术的广阔天地里&#xff0c;毕业论文就像是一场盛大的探险&#xff0c;既充满挑战也蕴含无限可能。每一位踏上这场探险之旅的学子&#xff0c;都渴望拥有一位得力的向导&#xff0c;让前行的道路更加顺畅。今天&#xff0c;就让我带你走进书匠策AI的世界&#xff0c;这位毕…...

LLaMA-Factory数据集格式详解与高质量数据构建方法-方案选型对比

LLaMA-Factory 数据集格式详解与高质量数据构建方法&#xff1a;方案选型对比 1. 问题背景与选型目标 在大模型微调&#xff08;SFT/DPO/PPO&#xff09;的工程实践中&#xff0c;“数据决定模型上限”已是共识。然而&#xff0c;许多团队在落地时面临的首要问题并非算法选择&a…...

给嵌入式新手的RISC-V入门课:手把手拆解蜂鸟E203的流水线与模块(附Verilog代码片段)

给嵌入式新手的RISC-V入门课&#xff1a;手把手拆解蜂鸟E203的流水线与模块 第一次接触RISC-V架构时&#xff0c;我盯着蜂鸟E203的文档看了整整三天——那些流水线示意图和模块划分就像天书一样。直到在仿真器里单步执行第一条指令&#xff0c;看到PC指针跳动的瞬间&#xff0c…...

用trl库和DeepSpeed,在单张消费级显卡上也能玩转LLaMA2的RLHF训练

在消费级显卡上实现LLaMA2的RLHF全流程训练&#xff1a;trl与DeepSpeed实战指南 当Meta发布LLaMA2系列开源模型时&#xff0c;整个AI社区都为之一振——直到人们发现&#xff0c;要完整实现RLHF&#xff08;基于人类反馈的强化学习&#xff09;训练流程&#xff0c;通常需要价值…...