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

门户网站模板下载六安马昌友

门户网站模板下载,六安马昌友,邯郸做网站询安联网络,电子商城开发网站开发选择排序 选择排序代码实现代码优化 排序#xff1a; 排序#xff0c;就是使一串记录#xff0c;按照其中的某个或某些关键字的大小#xff0c;递增或递减的排列起来的操作。 稳定性#xff1a; 假定在待排序的记录序列中#xff0c;存在多个具有相同的关键字的记录 排序就是使一串记录按照其中的某个或某些关键字的大小递增或递减的排列起来的操作。 稳定性 假定在待排序的记录序列中存在多个具有相同的关键字的记录若经过排序这些记录的相对次序保持不变即在原序列中 r[i] r[j] 且 r[i] 在 r[j] 之前而在排序后的序列中 r[i] 仍在 r[j] 之前则称这种排序算法是稳定的否则称为不稳定的。 注意稳定排序可以实现为不稳定的形式 而不稳定的排序实现不了稳定的形式 内部排序 数据元素全部放在内存中的排序。 外部排序 数据元素太多不能同时放在内存中根据排序过程的要求不能在内外存之间移动数据的排序。 选择排序 选择排序Selection Sort是一种简单的排序算法其基本思路可以描述为 初始状态 将待排序的数据分为两部分一部分是已排序的部分初始为空另一部分是未排序的部分初始包含所有元素。 找到最小元素 在未排序部分中找到最小的元素将其与未排序部分的第一个元素交换位置即将最小元素放到已排序部分的末尾。 重复步骤 继续以上步骤每次在未排序部分中找到最小的元素并将其交换到已排序部分的末尾逐渐将所有元素都移动到已排序部分。 完成排序 当未排序部分没有元素时排序完成整个数据集已经按照升序或降序排列好了。 选择排序的核心思想是在未排序的部分中选择最小的元素并将其放到已排序部分的末尾逐步缩小未排序部分的范围直到整个数据集排序完成。选择排序的时间复杂度为O(n^2)不适用于大型数据集。 代码实现 public static void selectSort(int[] arr) {int len arr.length;for (int i 0; i len-1; i) {// 假设未排序部分的第一个元素为最小int minIndex i;// 找到未排序部分中的最小的元素for (int j i1; j len; j) {if (arr[j] arr[minIndex]) {minIndex j;}}if (minIndex ! i) {// 将最小元素放到未排序的最前面int temp arr[i];arr[i] arr[minIndex];arr[minIndex] temp;}}}代码优化 优化一 同时选择最大值和最小值 public static void selectSort2(int[] arr) {int len arr.length;int left 0;int right len - 1;while (left right) {// 同时记录最大值和最小值的下标int minIndex left;int maxIndex left;// 找未排序区间中的最大值和最小值的下标for (int i left 1; i right; i) {if (arr[i] arr[minIndex]) {minIndex i;}if (arr[i] arr[maxIndex]) {maxIndex i;}}// 确定最大值和最小值swap(arr, left, minIndex);// 当 left 下标对应的值就是最大值时, 上面这个 swap 有可能把 最大值的位置换到最小值的位置if (left maxIndex) {maxIndex minIndex;}swap(arr, right, maxIndex);// 未排序的区间减小left;right--;}}public static void swap (int[] arr, int index1, int index2) {int temp arr[index1];arr[index1] arr[index2];arr[index2] temp;}虽然性能有提升 但是时间复杂度还是 O(N*N) 优化二 堆排序是一种树形选择排序是对直接选择排序的有效改进。 堆排序详解 总结 时间复杂度 ON*N空间复杂度 O1是不稳定排序 举个例子序列arr [5 8 5 2 9]我们知道第一遍选择第1个元素5会和2交换那么原序列中两个5的相对前后顺序就被破坏了所以选择排序是一个不稳定的排序算法。对数据不敏感 没有好坏之分 不管数据原本的分布情况 每层循环都需要遍历一遍, 直接选择排序思考非常好理解但是效率不是很好。实际中很少使用。 以上就是对选择排序的讲解 希望能帮到你 评论区欢迎指正
http://www.hkea.cn/news/14284336/

相关文章:

  • 已有网站备案更换idc 多久原画培训价格一般是多少
  • 电脑怎么创建网站做二手家电市场加什么网站可以
  • 邯郸网站制作厂家flash网站制作教程
  • 构建自己的网站项目管理软件免费
  • 生活服务网站开发做网站有哪些类型
  • 天津网站建设开发维护爱站网挖掘关键词
  • 网站开发php和python网站规划与开发技术专业
  • 网站开发去哪里找程序员有没有专门做尾料回收的网站
  • 将网站做成logo怎么做网页在线短网址生成器
  • 玉溪网站制作公司云虚拟机可以做几个网站
  • 河南省建设注册中心网站wordpress下一页代码
  • 门户网站系统开发顺德装修网站建设
  • 建站需要注意哪些说一说网站建设的含义
  • 全flash网站模板wordpress 编辑文章
  • 北京做网站好的网站的前台
  • 金华东阳网站建设什么是网盟推广
  • 网站设计基本要素产品设计培训机构排名
  • 企业网站建设协议范本wordpress如何搭建
  • 黄州网站建设网络购物平台
  • 建设金融网站惠山网页设计
  • 网站用户体验优化方案海报设计制作平台
  • 网站端和移动端分开建设域名一样么seo排名点击器原理
  • 自己做一个外贸网站怎么样wordpress 去除邮箱
  • 天津网站制作wordpress安装不上
  • 如何建立网站的快捷方式社区自助建站网
  • 象58同城网站建设需要多少钱长沙市建设网站平台的公司
  • 网站开发接私活的经理公司自有网站工信备案
  • 怎样让百度收取我的网站建成网站的关键是
  • 设计网站怎么设计上海发布最新消息今天
  • 黄冈网站推广软件下载西安全网优化