算法学习之排序:插入排序

Posted 92小强强强

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法学习之排序:插入排序相关的知识,希望对你有一定的参考价值。

类比打扑克插牌,左侧为排好序区域,右侧第二张牌开始为未排序区域,与右侧对比,若比其小,左侧右移;否则插入当前位置;




//插入排序#include <iostream>using namespace std;
void InsertSort(int a[], int n){  //左侧第一个元素为已排序区域 for (int i = 1; i < n; i++) { //待排序元素,从第二个元素开始 int temp = a[i]; //与排好序区域对比 int j = i - 1; for (; j >= 0 && a[j] > temp; j--) //若左侧已拍好序元素大于待排序元素,将排序元素右移,即右侧元素赋值为左侧元素 a[j + 1] = a[j]; //将待排序元素插入空位 a[j + 1] = temp; }
return;}
int main(){ cout << "请输入排序数组元素个数:" << endl; int size = 0; cin >> size; int* p = new int[size]; cout << "请输入排序数组元素:" << endl; for (int i = 0; i < size; i++) cin >> p[i];
InsertSort(p, size); for (int i = 0; i < size; i++) cout << p[i]<<" "; cout << endl;
delete [] p; p = NULL;

return 0;}

以上是关于算法学习之排序:插入排序的主要内容,如果未能解决你的问题,请参考以下文章

[一周一算法]算法导论学习之计数排序

算法学习之选择排序

算法学习之选择排序

算法学习之希尔排序的简洁实现

算法学习之排序算法(高速排序)

算法学习之排序:冒泡排序