考研数据结构--直接插入排序算法讲解
2019-10-09 23:56
232 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_42290506/article/details/102472398
直接插入排序算法
代码如下:
#include<iostream> using namespace std; //A[0]用做哨兵,不存储需要排序的数据,算法对A[1]到A[len - 1]的数据进行排序 void InsertSort(int A[], int len){ int i, j; //从A[2]开始进行插入 for(i = 2; i < len; i++){ //当待排序元素大于它前一个元素时需要把待排序元素往前移 if(A[i] < A[i - 1]){ //哨兵保存待排序元素的值 A[0] = A[i]; //把待排序元素的前一个元素后移一个位置 A[i] = A[i - 1]; //将待排序元素与它再往前的元素比较,若待排序元素小则那个前面的元素后移一个位置然后继续这个过程直到出现待排序元素大于或等于那个前面的元素或前面没有元素停止 for(j = i - 2; A[0] < A[j]; j--){ A[j + 1] = A[j]; } //比较的过程中第一个小于等于待排序元素的元素后面放置待排序元素 A[j + 1] = A[0]; } } } int main(){ int A[] = {0,9,5,6,3,1,5,4}; int len = sizeof(A) / sizeof(int); for(int i = 1; i < len; i++){ cout<<A[i]<<endl; } cout<<endl; InsertSort(A, len); for(int i = 1; i < len; i++){ cout<<A[i]<<endl; } }
相关文章推荐
- 【数据结构----笔记3】插入排序算法之【直接插入排序】
- 算法与数据结构(四)--插入排序(直接插入排序)
- 第16周SHH数据结构-【项目1-验证算法(1)直接插入排序】
- [算法与数据结构] - No.1 直接插入排序
- 数据结构与算法——冒泡排序,选择排序,直接插入排序
- 直接插入排序——考研算法
- 数据结构-排序算法之插入排序(直接插入,二分插入,希尔,表插入)
- 直接插入排序 - 数据结构和算法90
- 一步步学习数据结构和算法之直接插入排序效率分析及java实现
- C语言算法实例019:直接插入排序
- 白话经典算法系列之二 直接插入排序的三种实现
- C++数据结构-直接插入排序
- 经典算法系列之直接插入排序及其优化
- 第十五周实践项目1—验证算法(2)直接插入排序
- 白话经典算法系列之二 直接插入排序的三种实现
- 常见排序算法之直接插入排序
- 算法之直接插入排序
- 算法复习(直接插入排序)
- 第十五周项目1-验证算法(2)-直接插入排序
- 【数据结构】排序算法(一)之直接插入排序,冒泡排序