排序....

1.直接插入排序

1.1将数组分为有序和无序部分 无序部分插入到有序部分4

#include<iostream>

using namespace std;

void InsertSort(int a\[\], int n) {

int tmp;

int j;

for (int i = 1; i < n; i++) {

if (ai < ai - 1) {

tmp = ai;

for ( j = i - 1; j >= 0 && tmp < aj; j--) {

aj + 1 = aj;

}

aj + 1 = tmp;

}

}

}

void Print_a(int a\[\], int n) {

for (int i = 0; i < n; i++) {

cout << ai << " ";

}

}

int main() {

int a10 = { 1,9,2,8,3,7,4,6,5,10 };

int n = sizeof(a) / sizeof(a0);

InsertSort(a, n);

Print_a(a, n);

return 0;

}

希尔排序

#include<iostream>

using namespace std;

void ShellSort(int a\[\], int n) {

int gap = n;

while (gap > 1) {

gap = gap / 3 + 1;

int i;

for (int i = 0; i < n -gap; i++) {

int end = i;

int tmp = aend + gap;

while (end >= 0) {

if (aend > tmp) {

aend + gap = aend;

end -= gap;

}

else break;

}

aend + gap = tmp;

}

}

}

void print_a(int a\[\], int n) {

for (int i = 0; i < n; i++) {

cout << ai << " ";

}

}

int main() {

int a\[\] = { 1,9,2,8,3,7,4,6,5,10 };

int n = sizeof(a) / sizeof(a0);

ShellSort(a, n);

print_a(a, n);

return 0;

}

简单选择排序

#include<iostream>

using namespace std;

void SelectSort(int a\[\], int n) {

for (int i = 0; i < n - 1; i++) {

int Min = i;

for (int j = i + 1; j < n; j++) {

if (aj < aMin) {

Min = j;

}

}

if (Min != i) {

swap(ai, aMin);

}

}

}

void print_a(int a\[\], int n) {

for (int i = 0; i < n; i++) {

cout << ai << " ";

}

}

int main() {

int a\[\] = { 1,9,2,8,3,7,4,6,5,10 };

int n = sizeof(a) / sizeof(a0);

SelectSort(a, n);

print_a(a, n);

return 0;

}

相关推荐
papership4 分钟前
入门级-数据结构-2、简单树:二叉树的遍历(前序、中序、后序)
数据结构·算法
WWW65265 分钟前
代码随想录 打卡第五十四天
数据结构·c++·算法
happymaker06265 分钟前
LeetCodeHot100——15.三数之和
数据结构·算法
墨白曦煜7 分钟前
算法实战笔记:空间换时间的黑魔法——单调栈全景解析(十一)
java·笔记·算法
大模型最新论文9 分钟前
小红书提出 RedKnot:分头处理 kv 缓存,延时降低 60%效果还提升
算法
随意起个昵称14 分钟前
线性dp-LIS题目6(友好城市,二分优化)
算法·动态规划
数据科学小丫20 分钟前
算法:随机森林算法
算法·随机森林·机器学习
Samson Bruce27 分钟前
【初高中数学】
线性代数·数学·算法·机器学习
redaijufeng27 分钟前
我在C++中深入理解了继承,收获颇丰
java·c++·算法
.千余27 分钟前
【C++】C++继承入门(上):继承语法与基本特性详解
开发语言·c++·笔记·学习·其他