排序....

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;

}

相关推荐
choumin11 分钟前
C++中万能引用与std::forward的作用和用法
c++·万能引用·std forward
下一站春风里1 小时前
位运算完整学习笔记:按位与(&)+ 异或(^)
开发语言·c++·算法
DRobot1 小时前
【机械制图与CAD实战(二十五)】螺纹的表示方法
算法·机械制图
用户老李2 小时前
卡尔曼滤波自学教程 10:无迹卡尔曼滤波(UKF)
算法
深圳市益普科技有限公司3 小时前
半导体良率管理YMS:良率与设备参数的相关性,先拉哪几组数据
人工智能·python·算法
挖井观天3 小时前
《Java数据结构》第一讲:顺序表
数据结构
努力努力再努力wz4 小时前
【C++高阶系列】C++20 协程底层原理:函数为什么能暂停?从状态机到 Task,彻底串起挂起、恢复与协程调度
开发语言·c++·c++20·1024程序员节
程序员清风4 小时前
算法题中的边界条件、测试与调试
开发语言·算法·kotlin
划破黑暗的第一缕曙光4 小时前
[C++]:4.模板
c++·template·模板·函数模版·类模版
十五年专注C++开发4 小时前
pybind11:一个跨C++和Python平台的编程库
开发语言·c++·python·pybind11