排序

排序总结

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;
}
作者:骗人就变小狗原文地址:https://www.cnblogs.com/xiaren/p/18782227

%s 个评论

要回复文章请先登录注册