嘉兴做营销型网站设计,织梦网站栏目修改教程,装修推广平台哪个效果好,室内设计图制作软件插入排序原理#xff1a;
插入排序#xff08;Insertion Sort#xff09;是一种简单直观的排序算法。它的工作原理是通过构建有序序列#xff0c;对于未排序数据#xff0c;在已排序序列中从后向前扫描#xff0c;找到相应位置并插入。插入排序在实现上#xff0c;通常…插入排序原理
插入排序Insertion Sort是一种简单直观的排序算法。它的工作原理是通过构建有序序列对于未排序数据在已排序序列中从后向前扫描找到相应位置并插入。插入排序在实现上通常采用in-place排序即只需用到O(1)的额外空间的排序因而在从后向前扫描过程中需要反复把已排序元素逐步向后挪位为最新元素提供插入空间。
具体来说插入排序的步骤是
从第一个元素开始该元素可以认为已经被排序取出下一个元素在已经排序的元素序列中从后向前扫描如果该元素已排序大于新元素将该元素移到下一位置重复步骤3直到找到已排序的元素小于或者等于新元素的位置将新元素插入到该位置后重复步骤2~5直到所有元素都被排序。
代码示例
#include iostream
#include vector void insertionSort(std::vectorint arr) { int n arr.size(); for (int i 1; i n; i) { int key arr[i]; int j i - 1; // Move elements of arr[0..i-1], that are // greater than key, to one position ahead // of their current position while (j 0 arr[j] key) { arr[j 1] arr[j]; j j - 1; } arr[j 1] key; }
} int main() { std::vectorint arr {12, 11, 13, 5, 6}; insertionSort(arr); std::cout Sorted array: \n; for (int i 0; i arr.size(); i) std::cout arr[i] ; return 0;
}这段代码定义了一个insertionSort函数该函数接受一个整数向量的引用作为参数并对其进行原地排序。主函数main中创建了一个未排序的整数向量并调用insertionSort函数进行排序然后输出排序后的结果。