C语言排序算法详解:冒泡、选择与插入排序
c语言三种排序
常用的C语言排序算法主要有三类:冒泡排序、选择排序和插入排序。
1.冒泡排序冒泡排序:
从第一个数开始,按顺序进行比较,满足判断条件时进行交换。
代码实现(以降序排序为例)
#include
intmain()
{
intarray[10]={6,9,7,8,5,3,4,0,1,2};
for(inti=0;i<10>
for(intj=0;j<10>
{
{//前一个数字大于后一个数字时发生Exchangetemp=array[j];
}
}//打印数组for(inti=0;i<10>
2.选择排序以升序为例:
即在指定索引的数组元素之后(指定索引的元素通常从第一个元素开始,然后按顺序往回走),查找Values指定下标以外的元素与指定元素进行比较,满足条件则交换。
与冒泡排序的区别可以理解为冒泡排序是比较两个相邻的值,而选择排序是遍历数组找到数组元素并与指定的数组元素进行比较。
(以升序为例)
#include
intmain()
intarray[10]={6,9,7,8,5,3,4,0,1,2};
inttemp,索引;
for(inti=0;i<9>
{
index=j;
}
if(i!=索引)
{
temp=array[i];
array[i]=array[索引];
数组[索引]=temp;
}
for(inti=0;i<10>
printf("%2d"array[i])
return0;
}
3.快速排序
它通过排序将待排序的数据分成两个独立的部分。
一部分中的所有数据都小于另一部分中的所有数据,然后使用这种方法快速对两部分数据进行排序。
整个排序过程可以递归地完成,从而使整个数据成为有序序列。
voidQuickSort(int*arr,intsize)
{
inttemp,i,j;
for(i=1;i
{
if(arr[j] { temp=arr[j]; arr[j]=arr[j-1]; arr[j-1]=temp; } } }c语言排序的方法
排序主要分为以下几类。
1.冒泡排序:通过循环比较前一个和后一个数字的大小进行交换。
最后,对数组进行排序。
2.快速排序:首先以第一个数字为参考,然后循环将大于该数字的前半部分替换为小于该数字的后半部分,从而将该数字作为分向線。
,且前一项小于该数。
最后一个大于这个数,然后继续分成两部分。