当前位置: 首页 > news >正文

网站设计 无锡华润集团网站建设商

网站设计 无锡,华润集团网站建设商,建设网站建设网页制作0402高设计词,网站建设上传图片不显示插入排序#xff08;Insertion Sort#xff09;是一种简单直观的排序算法#xff0c;它的工作原理是逐步构建有序序列。在排序过程中#xff0c;它将未排序的元素逐个插入到已排序的部分中#xff0c;从而在每次插入时扩展已排序序列的长度。 原理介绍 插入排序的基本思…插入排序Insertion Sort是一种简单直观的排序算法它的工作原理是逐步构建有序序列。在排序过程中它将未排序的元素逐个插入到已排序的部分中从而在每次插入时扩展已排序序列的长度。 原理介绍 插入排序的基本思想是将数组分为两部分已排序部分和未排序部分。初始时已排序部分只包含数组的第一个元素而未排序部分包含剩余的元素。排序过程中每次从未排序部分取出一个元素将它插入到已排序部分的适当位置使得插入后依然保持已排序部分有序。 算法步骤 从第一个元素开始该元素可以认为已经被排序。取出下一个元素在已经排序的元素序列中从后向前扫描。如果该元素已排序大于新元素将该元素移到下一位置。重复步骤3直到找到已排序的元素小于或等于新元素的位置。将新元素插入到该位置后。重复步骤2~5。 C语言实现 下面是用C语言实现插入排序的示例代码 #include stdio.h// 函数实现插入排序 void insertionSort(int arr[], int n) {int i, key, j;for (i 1; i n; i) {key arr[i]; // 当前需要插入排序的元素j i - 1;// 将比key大的元素都向右移动一个位置while (j 0 arr[j] key) {arr[j 1] arr[j];j--;}arr[j 1] key; // 将key插入到正确的位置} }// 函数打印数组元素 void printArray(int arr[], int n) {for (int i 0; i n; i) {printf(%d , arr[i]);}printf(\n); }// 主函数测试插入排序的实现 int main() {int arr[] {12, 11, 13, 5, 6};int n sizeof(arr) / sizeof(arr[0]);printf(原始数组: \n);printArray(arr, n);insertionSort(arr, n);printf(排序后的数组: \n);printArray(arr, n);return 0; }代码解析 insertionSort函数实现插入排序的主要逻辑。在每次迭代中将当前需要排序的元素key插入到已排序部分的适当位置通过不断向前比较并移动元素实现插入。printArray函数用于打印数组元素方便查看排序结果。main函数测试插入排序的实现打印排序前和排序后的数组。 插入排序是一种简单而有效的算法但对于大规模数据或者需要更快速的排序算法来说希尔排序Shell Sort是一种更优秀的选择。本文将详细介绍插入排序和希尔排序的原理并提供用C语言实现的代码示例。 希尔排序简介 希尔排序是基于插入排序的一种改进算法也称为缩小增量排序。它通过将待排序数组分成若干个子序列对每个子序列进行插入排序逐渐缩小子序列的长度最终整体使用插入排序完成排序。 希尔排序算法步骤 选择一个增量序列按增量序列对原始数组进行分组。对各个分组进行插入排序。逐步缩小增量重复上述步骤直至增量为1。最后对整个数组进行插入排序。 希尔排序的C语言实现 #include stdio.hvoid shellSort(int arr[], int n) {int gap, i, j, temp;for (gap n / 2; gap 0; gap / 2) {for (i gap; i n; i) {temp arr[i];for (j i; j gap arr[j - gap] temp; j - gap) {arr[j] arr[j - gap];}arr[j] temp;}} }void printArray(int arr[], int n) {for (int i 0; i n; i) {printf(%d , arr[i]);}printf(\n); }int main() {int arr[] {12, 11, 13, 5, 6};int n sizeof(arr) / sizeof(arr[0]);printf(原始数组: \n);printArray(arr, n);shellSort(arr, n);printf(排序后的数组: \n);printArray(arr, n);return 0; }总结 插入排序和希尔排序都是重要的排序算法它们虽然在实现上有所不同但都是基于不断将元素插入已排序序列中的思想。希尔排序通过引入增量的方式优化了插入排序的性能尤其适合对中等大小的数据集进行排序。通过本文的介绍和代码示例读者可以更深入地理解这两种排序算法的工作原理和实现方法。
http://www.zqtcl.cn/news/70478/

相关文章:

  • 怎么做网站的外链网站建设零金手指花总
  • 精品课程网站建设设计方案上海外贸博览会
  • 教育营销型的网站建设怎么使用服务器做网站
  • 互联网设计是做什么的十条网站建设的seo策略
  • 大连网站建设仟亿网站项目建设策划书流程
  • 门户网站建设汇报材料网站seo基础
  • 网站建设项目环境影响评价目录国内网站设计经典案例
  • 网站建设员工分工网站建设自学多长时间
  • 网页设计与制作教程邓长寿网站营销seo
  • 个人主页哪个网站好微信公众号开发软件
  • 成都市住房和城乡建设厅网站汕头建设吧百度贴吧
  • wordpress+中文站浙江建设继续教育网站
  • 旅行社网站建设方案书郑州seo技术代理
  • 网站在百度的图标显示不正常显示设一个网站需要多少钱
  • 类似微薄利网站怎么做慢慢来建站公司
  • 网站内容的设计重庆建设造价信息网
  • 广州市公司网站建设公司免费免备案域名
  • 网站可以做电信增值网站备案与服务器
  • 2017免费网站空间北京搬家公司哪家好
  • 佛山网站排名提升如何制作ppt视频教程
  • 鸿蒙系统开发app入门系列seo网站推广
  • 网站建设文字郑州电力高等专科学校男女比例
  • 最新域名解析网站杭州产品网络推广方案
  • 龙岗网站建设要多少钱回收类型网站如何做
  • 电子销售网站模板刚刚大连发生了大事
  • 创新的网站建设排行榜快速做网站公司哪家专业
  • 手机建设网站赚钱荔枝app下载不收费用
  • 怎么给网站做防护wordpress怎么和手机连接
  • 如何做漂亮的网站首页vs2017网站开发选择调试服务
  • 网站后台的关键词百度站长平台有哪些功能