排序引论
排序引论
选择排序
“一种最简单的排序算法”——《算法(第4版)》
C++代码实现
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
//选择排序
template<typename T>
void selectionSort(vector<T> &v) {
vector<T>::iterator beg = v.begin();
for (vector<T>::iterator it = v.begin(); it != v.end(); it++) {
vector<T>::iterator e = min_element(it, v.end());
swap(*beg, *e);
beg++;
}
}
int main() {
vector<int> v = { 10, 8, 6, 4, 2, 0, 1, 3, 5, 7, 9 };
selectionSort(v);
for (auto e : v) {
cout << e << " ";
}
}
Python代码实现
# 选择排序
def selectionSort(l):
for i in range(len(l)):
scope = l[i:]
pos = scope.index(min(scope))
l[i],l[pos+i] = l[pos+i],l[i]
if __name__ == '__main__':
l = [10,8,6,4,2,0,1,3,5,7,9]
selectionSort(l)
print(l)
插入排序
“将每一张扑克牌插入到前面已经有序的牌中的适当位置”——《算法(第4版)》
Python 代码实现
# 插入排序
def insertSort(l):
for i in range(1, len(l)):
sorting = l[:i]
for j in range(len(l[:i])):
if l[i] < sorting[j]:
l.insert(j, l.pop(i))
continue
if __name__ == '__main__':
l = [10,8,6,4,2,0,1,3,5,7,9]
insertSort(l)
print(l)
智慧在街市上呼喊,在宽阔处发声。
分类:
Algorithm
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)