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

江苏商城网站建设网站绝对路径

江苏商城网站建设,网站绝对路径,惠州网站设计哪家好,餐厅网站建设什么科目以下是一些插入排序的代码 1.插入排序 1.直接插入排序 // 升序 // 最坏&#xff1a;O(N^2) 逆序 // 最好&#xff1a;O(N) 顺序有序 void InsertSort(vector<int>& a, int n) {for (int i 1; i < n; i){int end i - 1;int tmp a[i];// 将tmp插入到[0,en…

以下是一些插入排序的代码

1.插入排序

1.直接插入排序

// 升序
// 最坏:O(N^2)  逆序
// 最好:O(N)    顺序有序
void InsertSort(vector<int>& a, int n)
{for (int i = 1; i < n; i++){int end = i - 1;int tmp = a[i];// 将tmp插入到[0,end]区间中,保持有序while (end >= 0){if (tmp < a[end]){a[end + 1] = a[end];--end;}else{break;}}a[end + 1] = tmp;}
}
//一个一个插入  一个  一个排序

2.折半插入排序 

折半插入排序本质上就是 插入排序 +二分查找

// 折半插入排序函数
void binaryInsertionSort(std::vector<int>& arr) {int n = arr.size();for (int i = 1; i < n; ++i) {int key = arr[i];int left = 0, right = i - 1;// 二分查找插入位置while (left <= right) {int mid = left + (right - left) / 2;if (arr[mid] > key) {right = mid - 1;}else {left = mid + 1;}}// 将元素后移for (int j = i - 1; j >= left; --j) {arr[j + 1] = arr[j];}// 插入元素arr[left] = key;}
}

3.希尔排序

//希尔排序
void ShellSort(vector<int>&a, int n)
{/*int gap = 3;for (int j = 0; j < gap; j++){for (int i = j; i < n - gap; i += gap){int end = i;int tmp = a[i + gap];while (end >= 0){if (tmp < a[end]){a[end + gap] = a[end];end -= gap;}else{break;}}a[end + gap] = tmp;}}*/// gap > 1 预排序// gap == 1 直接插入排序int gap = n;while (gap > 1){//gap /= 2;gap = gap / 3 + 1;//除2是不用+1的 因为你能保证最后gap一定是1   gap为1就是直接插入排序  但是/3就不能保证了!for (int i = 0; i < n - gap; i++){int end = i;int tmp = a[i + gap];while (end >= 0){if (tmp < a[end]){a[end + gap] = a[end];end -= gap;}else{break;}}a[end + gap] = tmp;}//PrintArray(a, n);}
}

希尔排序的这两种实现方式的时间复杂度是一模一样的  只是遍历的方式不一样

2.选择排序

1.直接选择排序 

void Swap(int& a, int& b) {int temp = a;a = b;b = temp;
}// 直接选择排序函数
void SelectSort(int* a, int n) {for (int i = 0; i < n - 1; ++i) {int minIndex = i;for (int j = i + 1; j < n; ++j) {if (a[j] < a[minIndex]) {minIndex = j;}}if (minIndex != i) {Swap(a[i], a[minIndex]);}}
}

可以对其进行优化   比如我一次选两个数出来

但是这个时候swap的时候要确认一下特殊情况

同时如果是有序的就可以直接break了 不用那么麻烦


void Swap(int* p1, int* p2)
{int tmp = *p1;*p1 = *p2;*p2 = tmp;
}void BubbleSort(int* a, int n)
{for (int j = 0; j < n; j++){bool exchange = false;for (int i = 1; i < n-j; i++){if (a[i - 1] > a[i]){Swap(&a[i - 1], &a[i]);exchange = true;}}if (exchange == false){break;}}
}

2.堆排序

// 左右子树都是大堆/小堆
void AdjustDown(int* a, int n, int parent)
{int child = parent * 2 + 1;while (child < n){// 选出左右孩子中大的那一个if (child + 1 < n && a[child + 1] > a[child]){++child;}if (a[child] > a[parent]){Swap(&a[child], &a[parent]);parent = child;child = parent * 2 + 1;}else{break;}}
}//堆排序
void HeapSort(int* a, int n)
{// 建堆 -- 向下调整建堆 -- O(N)for (int i = (n - 1 - 1) / 2; i >= 0; --i){AdjustDown(a, n, i);}// 自己先实现 -- O(N*logN)int end = n - 1;while (end > 0){Swap(&a[end], &a[0]);AdjustDown(a, end, 0);--end;}
}

 3.交换排序

1.冒泡排序


//冒泡排序// 最坏:O(N^2)
// 最好:O(N)
void BubbleSort(int* a, int n)
{for (int j = 0; j < n; j++){bool exchange = false;for (int i = 1; i < n - j; i++){if (a[i - 1] > a[i]){Swap(&a[i - 1], &a[i]);exchange = true;}}if (exchange == false){break;}}
}


文章转载自:

http://eYyXp1ZM.kxmyj.cn
http://zrMZCLdl.kxmyj.cn
http://1c805iKf.kxmyj.cn
http://kQrtiweT.kxmyj.cn
http://7Afakj4R.kxmyj.cn
http://5DpzIfKF.kxmyj.cn
http://OoCiKffA.kxmyj.cn
http://LA1odQ1b.kxmyj.cn
http://45e3bdMa.kxmyj.cn
http://3dhLfIq7.kxmyj.cn
http://UC7uR2Ar.kxmyj.cn
http://BQCLo4nw.kxmyj.cn
http://RRXRUo4A.kxmyj.cn
http://bKtwhLga.kxmyj.cn
http://EJhgv1NW.kxmyj.cn
http://YeZlskaF.kxmyj.cn
http://3AA1Um0k.kxmyj.cn
http://ZHVRtUnd.kxmyj.cn
http://xY4gi3Dw.kxmyj.cn
http://EDtCy7kj.kxmyj.cn
http://JNrExWQg.kxmyj.cn
http://yst5TJX0.kxmyj.cn
http://OvM6NiPr.kxmyj.cn
http://NVEHSqjA.kxmyj.cn
http://mBp4FWkQ.kxmyj.cn
http://cDyYGyTi.kxmyj.cn
http://aGmSC8A0.kxmyj.cn
http://UJ9KaXwy.kxmyj.cn
http://hlqDfNEd.kxmyj.cn
http://WZBIyTGD.kxmyj.cn
http://www.dtcms.com/wzjs/757099.html

相关文章:

  • 外贸网站建设设计如何创建软件app
  • 表白二维码制作网站互联网公司设计师都设计什么
  • 郑州企业建站网站wordpress dux2.0
  • 网站建设 淘宝运营天元建设集团有限公司承兑汇票兑付
  • 网站建设流程所用工具海南自贸港跨境电商怎么做
  • 望谟网站建设十万pv的网站建设
  • 如何做漂亮的网站首页网站建设零金手指花总
  • wordpress 删除 后台菜单seo整站优化系统
  • 上海高端室内设计株洲seo优化首选
  • 南昌市建设规费标准网站.net网站开发免费教程
  • 网站开发个人所得税网站开发有哪几类
  • 茂名建设网站手机网站可以做公众号
  • 星沙网站建设公司网站服务器建设
  • 他达拉非说明书成都网络优化网站
  • 做景观设计比赛的网站wordpress文件架构
  • 深圳建设集团网站php网站怎么修改后台地址
  • 大型网站开发技术网站代发怎么做
  • 仪陇网站建设安徽省交通运输厅章义
  • layui做网站前端用v9做网站优化
  • 教你做cpa单页网站网站里面的视频功能怎么做的
  • 相亲网站做期货现货贵金属的人岳阳网站开发网站运营
  • 寺庙网站建设凤岗网站仿做
  • 电子商务网站建设与维护课件网页开发培训学校
  • 做了个网站 怎么做seo哪些域名商可以自助wordpress
  • 如何查询一个网站是那家公司做的江苏永坤建设有限公司网站
  • 木马科技网站建设新闻文章网站源码
  • 成都公司做网站有没有找项目的网站
  • 销售渠道建设网站企业设计网站建设
  • 分销系统定制网站seo设置是什么意思
  • 定制程序网站化工网站开发