1. /*
    2. 直接插入排序:
    3. 从第一个数开始,插入到它前面应该在的位置
    4. */
    5. #include <stdio.h>
    6. #include <stdlib.h>
    7. void directInsertSort(int *arr,int len) {
    8. for (int i = 0; i < len;i++) {//进行len次循环
    9. for (int j = 0; j < i;j++) {
    10. if (arr[i] < arr[j]) {//此时找到了它的归宿
    11. int nowN = arr[i];//将需调换的值暂存
    12. for (int k = i-1; k >= j;k--) {//从下标为j的元素开始往后移,腾位置
    13. arr[k+1] = arr[k];
    14. }
    15. arr[j] = nowN;
    16. }
    17. }
    18. }
    19. }
    20. int main() {
    21. int arr[] = {5,3,4,10,8,9,7,12};
    22. directInsertSort(arr,8);
    23. for (int i = 0; i < 8;i++) {
    24. printf("%d ",arr[i]);
    25. }
    26. return 0;
    27. }