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

什么网站可以帮忙做任务赚钱如何让百度快速收录

什么网站可以帮忙做任务赚钱,如何让百度快速收录,政府网站建设的对策,wordpress主题极简cho【数据结构学习笔记】选择排序 参考电子书:排序算法精讲 算法原理 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元…

【数据结构学习笔记】选择排序

参考电子书:排序算法精讲

算法原理

首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕

const nums = [1, 4, 6, 2, 0];let minIndex;
for (let i = 0; i < nums.length; i++) {minIndex = i;for (let j = i + 1; j < nums.length; j++) {if (nums[j] < nums[minIndex]) {minIndex = j;}}const temp = nums[i];nums[i] = nums[minIndex];nums[minIndex] = temp;
}
  • 时间复杂度:O(n^2)
  • 空间复杂度:O(1)

优化方式

  • 当 i = nums.length - 1 时,j = nums.length 直接跳出循环,因此可以跳过
const nums = [1, 4, 6, 2, 0];let minIndex;
for (let i = 0; i < nums.length - 1; i++) {minIndex = i;for (let j = i + 1; j < nums.length; j++) {if (nums[j] < nums[minIndex]) {minIndex = j;}}const temp = nums[i];nums[i] = nums[minIndex];nums[minIndex] = temp;
}
  • 如果 minIndex 没有变就跳过交换
const nums = [1, 4, 6, 2, 0];let minIndex;
let swapped;
for (let i = 0; i < nums.length; i++) {minIndex = i;swapped = false;for (let j = i + 1; j < nums.length - i; j++) {if (nums[j] < nums[minIndex]) {minIndex = j;swapped = true;}}if (!swapped) continue;const temp = nums[i];nums[i] = nums[minIndex];nums[minIndex] = temp;
}
  • 记录最小值的同时记录最大值,在排序到中间部分就会有序
const nums = [1, 4, 6, 2, 0];let minIndex;
let maxIndex;
let swapped;
for (let i = 0; i < nums.length; i++) {minIndex = i;maxIndex = i;swapped = false;for (let j = i + 1; j < nums.length - i; j++) {if (nums[j] < nums[minIndex]) {minIndex = j;swapped = true;}if (nums[j] > nums[maxIndex]) {maxIndex = j;swapped = true;}}if (!swapped) continue;const temp = nums[i];nums[i] = nums[minIndex];nums[minIndex] = temp;if (maxIndex === i) maxIndex = minIndex;temp = nums[nums.length - 1 - i];nums[nums.length - 1 - i] = nums[maxIndex];nums[maxIndex] = temp;
}

相关例题

LC 215.数组中的第 k 个最大元素

给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。
请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。

/*** @param {number[]} nums* @param {number} k* @return {number}*/
var findKthLargest = function(nums, k) {let maxIndex;let maxIndexes = [];while(k-- > 0) {maxIndex = -1;for (let i = 0; i < nums.length; i++) {if (maxIndexes.includes(i)) continue;if (maxIndex === -1) {maxIndex = i;continue;}if (nums[i] > nums[maxIndex]) {maxIndex = i;}}maxIndexes.push(maxIndex);}return nums[maxIndexes[maxIndexes.length - 1]];
};

受限于 Leetcode 更新了测试用例,此题用选择排序会出现超时,但是算法思想不变即可

http://www.khdw.cn/news/30809.html

相关文章:

  • 给我一个用c 做的网站做电商一个月能挣多少钱
  • 四川网站建设价格什么是seo关键词
  • 公司网站设计好2345浏览器
  • 景安香港主机可以做几个网站设计本网站
  • 广州网站制作功能app推广
  • 客户说做网站价格高爱站网长尾关键词搜索
  • 做网站 node php建设网官方网站
  • 美国做试管婴儿 网站软件外包公司是什么意思
  • yy简历网谷歌seo详细教学
  • 做网站需要注册哪类商标湖南企业seo优化首选
  • 红十字会网站建设方案郑州seo询搜点网络效果佳
  • 长沙网络视频全线推广公司关键词点击优化工具
  • 企业做网站的发票会计分录网络营销促销策略有哪些
  • 龙南城市建设局网站企业建站平台
  • 做网站推广员必备的条件实体店引流推广方法
  • 电子工程网官方网站长沙营销推广
  • 牛街网站建设军事新闻俄乌最新消息
  • 广州网站开发外包已备案域名交易平台
  • 门户网站建设注意问题代运营电商公司
  • 南昌企业网站设计公司国外seo网站
  • 定制软件开发多少钱seo技术蜘蛛屯
  • 普陀区建设工程质检网站培训计划方案模板
  • 东莞企业网站公司广告联盟有哪些平台
  • h5做商城网站推广公众号
  • 创意产品设计图如何做网站优化
  • 网络营销概念及理解seo推广代理
  • 做斗图的网站网络营销的目标
  • 环境设计专业资料网站seo快速推广窍门大公开
  • 自己能网站建设合肥360seo排名
  • 如何把网站做跳转浏览器链接地址2022年列入传销组织最新骗法