【C】排序算法之——插入排序(直接插入排序)

来源:互联网 发布:魔卡少女樱之我是知世 编辑:程序博客网 时间:2024/05/22 08:21

插入排序分为直接插入排序和折半插入排序

插入排序:稳定,时间复杂度 O(n^2)

我们这次先来试试直接插入排序

#include<stdio.h>void Print(int *a)//打印函数 {for(int i=0;a[i]!='\0';i++)//打印每一次排序的结果 printf("%d ",a[i]);printf("\n");//输个换行符}void Insert(int *a){int j;int k;int temp = 0; for(int i=1;a[i]!='\0';i++)//假设第一个元素已经是有序队列 {for(j=0;j<i&&a[j]<a[i];)j++;printf("第%d次直接插入排序:",i);if(i!=j){temp = a[i];//运用中间变量temp进行交换for(k = i-1;k>=j;k--)a[k+1]=a[k];a[j] = temp; //把中间变量给a[i];}Print(a); } }int main(){int a[10]={1,3,5,7,9,2,4,6,8}; Print(a);Insert(a);//进行插入排序printf("直接插入排序结果如下:\n"); Print(a);return 0;}


然后继续第6次排序到最后,同样的方法,就排完了微笑

2 0
原创粉丝点击