首页 > 代码库 > 排序算法——直接插入排序
排序算法——直接插入排序
直接插入排序是一种实现较为简单的排序算法。
基本的思想是,从数组的第二个元素起,每次选取一个元素,与前面已经排序数组的元素比较,找到该元素的合适位置。
不多说,直接上代码。
#include <iostream> #include <iomanip> #include <ctime> using namespace std; const int arrSize = 16; void InsertSort(int* arr, int size) { int i = 0; int j = 0; int key = 0; for (j = 1; j != arrSize; ++j) { key = arr[j]; i = j - 1; while (i >= 0 && arr[i] > key) { arr[i+1] = arr[i]; --i; } arr[i+1] = key; } } int main() { srand((unsigned int)time(NULL)); int arr[arrSize]; for (int index = 0; index != arrSize; ++index) { arr[index] = rand() % 1000; } InsertSort(arr, arrSize); for (int index = 0; index != arrSize; ++index) { cout << setw(4) << arr[index] << ‘ ‘; if ((index+1) % 4 == 0) { cout << endl; } } return 0; }
直接插入排序的最坏情况下的时间复杂度是O(n2),空间复杂度为O(1)。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。