C/C++数据结构-完整代码-插入排序代码实现

x33g5p2x  于2021-09-28 转载在 C/C++  
字(0.7k)|赞(0)|评价(0)|浏览(399)

原理

代码实现

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

//从小到大排序
void insertSort(int arr[],int len){
    for(int i = 0; i < len;i++){
        if(arr[i] < arr[i-1] ){ //判断当前元素是否比前一个大(如果满足条件将当前元素报错将当前元素前面的元素向后移动)
            int temp = arr[i];//利用temp保存当前的i号位置的数据值
            int j = i -1;//j就是当前元素前一个元素的位置
            for(; j >= 0 && temp < arr[j] ; j--)
            {
                //将当前元素之前的元素数据进行后移的操作
                arr[j+1] = arr[j];//
            }
            //将j+1的位置的数据,赋值为temp
            arr[j+1] = temp;//将移动后的多出了的位置赋值
        }
    }

}
void printArray(int arr[],int len)
{
    for(int i = 0; i < len;i++){
        printf ("%d\n",arr[i]);
    }
}

void  test01(){
    int arr[] = {5,9,1,3,7,2,18,32,11,10,15};
    int len = sizeof(arr) / sizeof(int);
    insertSort(arr,len);
    //打印数组
    printArray(arr,len);
}
int main () {
    test01();
    printf ("Hello, World!\n");
    return 0;
}

相关文章

最新文章

更多