排序

排序总结

1. 冒泡排序

算法思想:冒泡排序是一种基于交换的简单排序算法,其核心思想是通过重复遍历待排序序列,逐对比较相邻元素并调整顺序,使较大(或较小)的元素逐渐“浮”到序列末端

//冒泡排序 指的是相邻元素两两之间进行比较交换,需要比较n轮,每轮需要比较m次,从左向右升序
void BubbleSort(int buf[],unsigned int size)
{
    int temp=0;//存储临时交换值
    //数组长度为size,需要循环n次
    for(int n=0;n<size-1;n++)
    {
        //每次需要比较m次
        for(int m=0;m<size-n;m++)
        {
            if(buf[m]>buf[m+1])//如果m比m+1大,交换m和m+1
            {
                temp=buf[m];//用temp存储buf[m]
                buf[m]=buf[m+1];//将m+1d的值给m
                buf[m+1]=temp;//用m+1存储临时变量的值
            }
        }
    }
}
int main()
{
    return 0;
}

2.选择排序

算法思想:选择排序是一种简单直观的排序算法,其核心思想是通过重复从未排序序列中找到最小(或最大)元素,将其放到已排序序列的末尾

//选择排序:每次选择数组中最小的值插在数组前面
void SelectSort(int buf[10],unsigned int size)
{
    int temp;//备份最小元素的值
    int min;//记录最小元素的下标
    for(int n=0;n<size-1;n++)
    {
        min=n;//假设最小值是buf[n]
        for(int m=n+1;m<size-1;m++)
        {
            if(buf[min]<buf[m])//比较得到数组中最小元素的下标
            {
                min=n;
            }
        }
        //找到最小值元素,需要把最小值元素和序列的首部元素进行交换
        temp=buf[n];//备份最小元素的值
        buf[n]=buf[min];//
        buf[min]=temp;
    }
}

3.插入排序

算法思想:插入排序是一种基于“逐个元素插入有序区”的简单排序算法,其核心思想是将待排序序列视为“已排序”和“未排序”两部分,逐步将未排序元素插入已排序区的正确位置

//算法思想:将数组分成两部分,一部分有序,一部分无序,每次将无序的元素插入到有序的部分中
void InsertSort(int buf[],unsigned int size)
{
    int temp=0;//存储交换的临时值
    int prev=0;//保存当前节点的前一个节点
    for(int n=1;n<size;n++)
    {
        temp=buf[n];
        for(int m=n-1;m>=0;m--)
        {
            if(temp<buf[m])//如果插入的值比当前的值小
            {
                prev = m;
                buf[m+1]=buf[m];
            }
            if(temp>buf[m])//如果插入的值比当前的值大则打破循环
            {
                prev=m+1;
                break;
            }
        }
        buf[prev]=temp;
    }
}

int main()
{
    return 0;
}
posted @ 2025-03-20 01:07  骗人就变小狗  阅读(41)  评论(0)    收藏  举报