数据结构(复习排序算法)——选泡插
#include <stdio.h> /** * 插入排序(优化) * 平均时间复杂度:O(n^2) * 平均空间复杂度:O(1) * 思想理念:从前到后进行循环,从后到前循环, * 如果前比后大,用一个下标记住,循环结束之后 * 进行交换 **/ void insertion_sort_update(int a[],int len){ for(int i=1;i<len;i++){ int j,tmp=a[i]; for(j=i;j>0&&tmp<a[j-1];j--){ a[j]=a[j-1]; } a[j]=tmp; } } /** * 插入排序 * 平均时间复杂度:O(n^2) * 平均空间复杂度:O(1) * 思想理念:从前到后进行循环,从后到前循环, * 如果前比后大,那么交换 **/ void insertion_sort(int a[],int len){ for(int i=1;i<len;i++){ for(int j=i;j>0&&a[j]<a[j-1];j--){ int tmp=a[j]; a[j]=a[j-1]; a[j-1]=tmp; } } } /** * 选择排序 * 平均时间复杂度:O(n^2) * 平均空间复杂度:O(1) * 思想理念:从前到后进行选择,选择最小 * 与最开始的数字进行交换 **/ void selection_sort