首页 > 其他分享 >插入排序

插入排序

时间:2024-09-01 21:47:35浏览次数:8  
标签:sort int 插入排序 sizeof include size

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

#define ASIZE(a) (sizeof(a)/sizeof(a[0]))

void insert_sort(int* a, int size)
{
    for (int i = 1; i < size; i++)
    {
        int value = a[i];
        int j = i - 1;
        for (; j >= 0; j--)
        {
            // 它的后面位置可以插入
            if (a[j] <= value)
            {
                a[j+1] = value;
                break;
            }

            // 移动到后面
            a[j+1] = a[j];
        }
    }
}

void rand_array(int* a, int size)
{
    for (int  i = 0; i < size; i++)
    {
        a[i] = rand();
    }
}

void print_array(int* a, int size)
{
    for (int i = 0; i < size; i++)
    {
        printf("%d, ", a[i]);
    }
    printf("\n");
}

int main()
{
    int a[10];

    rand_array(a, ASIZE(a));
    print_array(a, ASIZE(a));
    
    insert_sort(a, ASIZE(a));
    print_array(a, ASIZE(a));
}

 

标签:sort,int,插入排序,sizeof,include,size
From: https://www.cnblogs.com/kehuadong/p/18391787

相关文章

  • 插入排序详细解读
    插入排序详细解读图解第一轮:从第二位置的6开始比较,比前面7小,交换位置。第二轮:第三位置的9比前一位置的7大,无需交换位置。第三轮:第四位置的3比前一位置的9小交换位置,依次往前比较。第四轮:第五位置的1比前一位置的9小,交换位置,再依次往前比较。......就这......
  • Java实现冒泡排序和插入排序算法
    冒泡排序算法步骤1、比较相邻的元素,如果第一个比第二个大,就交换它们两个;2、对每一对相邻元素作同样的比价,从开始第一对到结尾的最后一对,这样在最后的元素就是最大的数;3、针对所有的元素重复以上的步骤,除了数组最后已经排好序的数组;4、重复步骤1~3,直到排序完成。代码实现pac......
  • 探索Python中的插入排序算法
    探索Python中的插入排序算法插入排序(InsertionSort)是一种简单直观的排序算法。虽然在大规模数据集上效率不如一些高级排序算法,但插入排序在处理小规模数据集或部分有序的数据时表现非常优秀。本文将介绍插入排序的工作原理、实现方法以及它的时间复杂度。插入排序的工作......
  • 排序简单篇——冒泡排序、选择排序、插入排序、希尔排序、快速排序全解析【附完整源码
    ......
  • 希尔排序, 插入排序, 冒泡排序, 选择排序【C++】
    希尔排序,插入排序,冒泡排序,选择排序测试代码希尔排序选择排序冒泡排序插入排序测试代码#include<iostream>usingnamespacestd;intmain(){intarr[6]={0};intlen=sizeof(arr)/sizeof(int);for(inti=0;i<len;i++){......
  • 选择插入排序改进思路加算法实现
    首先默认第一个元素是已排序的,剩下元素是待排序的,从第二个元素开始遍历取出待排序区域的第一个元素element和已排序区域的最后一个元素a[j]往前开始比较大小若待排元素大于等于最后一个元素则直接跳出循环将待排元素赋值给a[j+1]若待排元素小于最后一个元素将最后一个元......
  • 折半插入排序算法思想及代码实现
    折半插入排序(BinaryInsertionSort)是插入排序算法的一种优化版本。插入排序的基本思想是将一个记录插入到已经排序好的有序表中,从而得到一个新的、记录数增加1的有序表。传统的插入排序在寻找插入位置时,采用的是顺序比较的方式,即逐个与有序表中的元素进行比较,直到找到比待插入......
  • C++ 插入排序
    【预告】        这几次将讲讲排序(从简单开始),废话不多说,直接切入正题【关于插入排序】【定义】    定义:插入排序是一种简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入【时间复杂度】 ......
  • 插入排序 insertsort
    #include<iostream>usingnamespacestd;voidinsertsort(inta[],intn){ inti,j,key; for(i=1;i<n;i++) { if(a[i]<a[i-1]) { key=a[i]; for(j=i-1;j>=0&&a[j]>key;j--) a[j+1]=a[j]; a[j......
  • 【数据结构与算法】选择排序篇----详解直接插入排序和哈希排序【图文讲解】
     欢迎来到CILMY23的博客......