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

北京管庄网站建设公司网站建立公司

北京管庄网站建设公司,网站建立公司,域名注册网站建设网络实名,企业年金怎么领取最划算前言 我自己实现了很多次一些基础的算法,但不知道为什么,像选择排序和冒泡排序这一块我老是容易弄混,这里详细的研究一下。 原理 选择排序是相当于有两块内存空间,一块内存空间是存储已排序的序列,初始为空&#xf…

前言

我自己实现了很多次一些基础的算法,但不知道为什么,像选择排序和冒泡排序这一块我老是容易弄混,这里详细的研究一下。

原理

选择排序是相当于有两块内存空间,一块内存空间是存储已排序的序列,初始为空,一块空间是存储未排序的序列。我们每次就是在未排序序列里面找出目前最小的值的序列号,把他放到已排序空间的尾部,直到未排序序列为空。

实现

#include <iostream>
using namespace std;//算法实现部分
void simpleSelectionSort(int arr[], int n) {for (int i = 0; i < n-1; i++) {      // 遍历每个位置int min_idx = i;                 // 假设当前元素是最小值for (int j = i+1; j < n; j++) {  // 遍历未排序部分找实际最小值if (arr[j] < arr[min_idx]) {min_idx = j;             // 更新最小值索引}}// 交换元素(无需判断 min_idx 是否等于 i)int temp = arr[i];arr[i] = arr[min_idx];arr[min_idx] = temp;}
}//测试部分
int main() {int data[] = {64, 25, 12, 22, 11};//数组int n = sizeof(data)/sizeof(data[0]);//元素个数simpleSelectionSort(data, n);cout << "Sorted array: ";for (int i = 0; i < n; i++) {cout << data[i] << " ";}return 0;
}

核心逻辑

采用原地操作,用i在数组内代替物理上的空间隔离,i左边为已排序部分,i右边为未排序部分,每次找出最小的元素放到左边去,这是手写版本,未考虑复杂度问题不使用STL最简单实现。

为什么不使用物理分割?

物理分割就是创建两个序列,一个是未排序的,一个是已排序的,这样做也可以实现,但是效率低下,涉及到元素的拷贝,额外的需要更多的内存,都是下下之选,不如用数组内原地操作好,不管是效率(只移动一次,避免内存复制开销)还是空间(需要开辟一个同样大小的额外空间)

 

http://www.dtcms.com/wzjs/547177.html

相关文章:

  • 网站开发主要框架 后端杭州设计公司招聘
  • 乐清高端网站建设二级域名网站有哪些
  • 中英文网站源码ps做的网站
  • 养老院网站建设方案曲靖网站建设dodoco
  • 网站后台怎么做qq群自动加西安看个号网络科技有限公司
  • 做数学ppt工具的网站全国村级网站建设
  • 海外 推广网站怀化seo推广
  • 淄博学校网站建设方案深圳网站定制开发
  • 网站建设与管理课程总结室内软装设计软件
  • 卧龙区建网站做爰视频网站有吗
  • 分析网站统计对网络营销的价值域名有了主机有了如何做网站
  • 论文 网站建设广西房地产网站建设
  • 企业网站自助建设wordpress 环镜
  • 成品网站货源1688在线智慧团建平台
  • 赣州网站设计哪里好个人网页制作
  • 兴义网站seo网站做sem推广时要注意什么
  • 花店网站源码沭阳县城乡建设局网站
  • 江西省住房和城乡建设部网站苏州最新情况最新消息今天
  • 网站后期维护怎么做中国500强公司排名名单
  • 江门网站建设推广平台站台建筑
  • 蓟县网站制作wordpress 多媒体管理
  • 网站制作九江网站模板在线预览
  • 网站平台需要做无形资产吗 怎么做wordpress时间格式
  • 网站在谷歌怎么做排名好网页设计培训
  • 网站推广该怎么做做家乡网站
  • 网站数据库5g深圳外贸网站建设
  • 珠海网站设计公司西部数码网站管理助手 mysql保存路径
  • 知名网站建设加工推广策略论文
  • 许昌企业网站建设大连网站平台研发
  • 好的平面设计网站有哪些html是静态网站