插入排序的c实现

来源:互联网 发布:韩国女团舞蹈知乎 编辑:程序博客网 时间:2024/05/04 16:10

      插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外,而第二部分就只包含这一个元素。在第一部分排序后,再把这个最后元素插入到此刻已是有序的第一部分里的位置

c实现如下:

#include<stdio.h>#include<stdlib.h>#include<string.h>void insert_sort(int value[], int length){int i = 0;int j = 0;int temp;for(i = 1; i < length; i ++){temp = value[i];for(j = i-1; j >= 0; j--){if(value[j] > temp){value[j+1] = value[j];value[j] = temp;}}}}int main(){int value[7] = {7,2,5,1,3,2,1};int i = 0;int length = 7;printf("Before:\n");for(i = 0; i < length; i++){if(i == length -1){printf("%d\n", value[i]);}else{printf("%d\t", value[i]);}}insert_sort(value, length);printf("After:\n");for(i = 0; i < length; i++){if(i == length -1){printf("%d\n", value[i]);}else{printf("%d\t", value[i]);}}return 0;}


 

原创粉丝点击