第六章 排序-冒泡,选择,插入排序
哔哩哔哩数据结构讲解地址:https://space.bilibili.com/356198029
本代码视频讲解地址:https://www.bilibili.com/video/av74560022
冒泡排序
#include<iostream> using namespace std; void bubble(int[], int); int main() { int array [] = {55,2,6,4,32,12,9,73,26,37}; int len = sizeof(array) / sizeof(int); cout<<"输入的原始序列: "; for(int i=0; i<len; i++) // 输出原序列 cout<<array[i]<<","; cout<<endl<<endl; cout<<" ----冒泡排序过程如下---- " << endl; bubble(array,len); // 调用排序函数 return 0; } void bubble(int a[], int size) { // 冒泡排序具体的过程 // 两个for循环,一个控制轮数,一个控制每轮比较的次数 for(int pass=1; pass<size; pass++) // 比较的 size - 1 轮 { for(int i=0; i<size-pass; i++) // 每轮比较的次数: size-pass if(a[i+1]<a[i]) { swap(a[i],a[i+1]); } for(int j=0; j<size; j++) cout<<a[j]<<","; cout<<endl; } }
选择排序
// // Created by Tusdao_xxw on 2019/11/10. // # include<iostream> using namespace std; void selectSort(int[], int); int main() { int array [] = {55,2,6,4,32,12,9,73,26,37}; int len = sizeof(array) / sizeof(int); cout<<"输入的原始序列: "; for(int i=0; i<len; i++) // 输出原序列 cout<<array[i]<<","; cout<<endl<<endl; cout<<" ----选择排序开始---- " << endl; selectSort(array,len); // 调用排序函数 return 0; } void selectSort(int a[], int size) { int minIndex, temp; for(int i=0; i<size; i++) { minIndex=i; for(int j=i;j<size; j++) { if(a[minIndex]>a[j]) { minIndex = j; } } temp = a[i]; a[i] = a[minIndex]; a[minIndex] = temp; for(int j=0; j<size; j++) cout<<a[j]<<","; cout<<endl; } }
插入排序
#include<iostream> using namespace std; void isort(int[], int); int main() { int array [] = {55,2,6,4,32,12,9,73,26,37}; int len = sizeof(array) / sizeof(int); cout<<"输入的原始序列: "; for(int i=0; i<len; i++) // 输出原序列 cout<<array[i]<<","; cout<<endl<<endl; cout<<" ----插入排序开始---- " << endl; isort(array,len); // 调用排序函数 return 0; } void isort(int a[], int size) { int inserter, index; // 插入排序过程 for(int i=1; i<size; i++) { inserter = a[i]; // 待插入的元素 index = i - 1; // 与待插入元素比较的元素下标,前i个元素已经排好顺序 while(index>=0 && inserter < a[index]) // 找位置关键操作 { a[index + 1] = a[index]; index--; } a[index + 1] = inserter; for(int j=0; j<size; j++) cout<<a[j]<<","; cout<<endl; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!