900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 利用C语言实现数组的排序(直接插入排序法)

利用C语言实现数组的排序(直接插入排序法)

时间:2022-06-25 08:34:14

相关推荐

利用C语言实现数组的排序(直接插入排序法)

直接插入排序基本思想是每一步将一个待排序的记录,插入到前面已经排好序的有序序列中去,直到插完所有元素为止。

#pragma once#include <stdio.h>int insort(int s[], int n) {int i,j;for(i=2;i<=n;i++) {s[0]=s[i]; j=i-1; while(s[0]<s[j]){s[j+1]=s[j]; j--; }s[j+1]=s[0]; }return 0;}int main(){int a[11],i; printf("请输入10个数据:\n");for (i =1;i<=10;i++)scanf("%d",&a[i]); printf("原始顺序:\n");for(i=1;i<11;i++)printf("%5d",a[i]); insort(a,10); printf("\n 插入数据排序后顺序:\n");for(i=1;i<11;i++)printf("%5d",a[i]);printf("\n");return 0;}

简单插入排序在最好情况下,需要比较n-1次,无需交换元素,时间复杂度为O(n);在最坏情况下,时间复杂度依然为O(n2)。但是在数组元素随机排列的情况下,插入排序还是要优于上面两种排序的。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。