哔哩哔哩数据结构讲解地址: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; } }