顺序数据结构~~排序算法
快速排序
function quickSort(arr){
let len = arr.length
// 这里长度小于3,直接内置sort排序了
if(len <= 2) return arr.sort()
let low = 0
let high = len-1
let cur = arr[0]
let temp = 0
while(high > low){
while(high > low && arr[low+1] <= cur ){
arr[low] = arr[low+1]
low += 1
}
while(high > low && arr[high] > cur){
high -= 1
}
if(low<high){
temp = arr[low+1]
arr[low++] = arr[high]
arr[high--] = temp
}
}
arr[low] = cur
return quickSort(arr.slice(0,low+1)).concat(quickSort(arr.slice(low+1,len)))
}
quickSort([1,3,5,2,2])
插入排序:
function insertSort(arr){
let cur ;
let insert;
for(let i = 1 ; i < arr.length ; i++){
cur = arr[i]
insert = i-1
while(arr[insert] > cur){insert -= 1}
// for(let j = i ; j >insert+1 ;j-- ){
// arr[j] = arr[j-1]
// }
// js内置API简略写法
// 简单插入排序
arr.copyWithin(insert+2,insert+1,i)
arr[insert+1] = cur
}
return arr
}
判断一个链表中是否有环:
function ListNode(x){
this.val = x;
this.next = null;
}
function detectCycle( head ) {
if(!head ) return null
while(head){
var len = head.val.length
if(!head.sign) head.sign = 'visited'
else {
delete head.sign
return head
}
head = head.next
}
return null
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人