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

做国际网站怎么能快速打开网站google搜索优化

做国际网站怎么能快速打开,网站google搜索优化,wordpress扫光,win7做网站服务器【数据结构学习笔记】选择排序 参考电子书:排序算法精讲 算法原理 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元…

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

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

算法原理

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

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.ds6.com.cn/news/80751.html

相关文章:

  • 建设彩票网站需要哪些要求天津网站seo设计
  • 做网站步骤网络游戏推广公司
  • 每天网站外链做几条最好网站链接交易
  • 网站制作报价单模板杭州百家号优化
  • 自己做网站需要填税表吗篮网最新消息
  • 物流网站建设推广团队在哪里找
  • 太仓网站建设平台排名优化关键词公司
  • 苏州市住房和建设局网站新品推广活动方案
  • WordPress 微信采集助手做网站优化推广
  • 丰台区建设网站电商运营助理
  • 网站开发如何做账务处理营销计划书7个步骤
  • 专业的移动网站建设公司设计个人网站
  • 用什么软件做网站好处软文发布平台哪个好
  • 怎样才能做公司的网站2021百度最新收录方法
  • 厦门专业做网站的网站快速排名优化报价
  • 小程序开发平台免费网站优化推广教程
  • 网站建设类岗位有哪些明星百度指数排行
  • 微博带动网站做排名兰州seo新站优化招商
  • 站酷官网建立个人网站
  • 做企业网站需要人维护么百度词条优化工作
  • 企业微网站杭州关键词优化测试
  • 租服务器网站自己在家怎么做跨境电商
  • 什么网站模板系统清理优化工具
  • 青岛seo网站建设查询百度关键词排名
  • 门户网站建设汇报网店培训教程
  • 国外移动网站设计网上有免费的网站吗
  • 三水网站建设阿里云万网域名购买
  • 如何下载别人的网站做模板网球新闻最新消息
  • 网站备案域名还是空间外贸网站谷歌seo
  • 福州网站建设公司哪家好软文营销实施背景