C语言排序算法:冒泡、选择、插入排序详解

创始人
2024-12-18 17:53:01
0 次浏览
0 评论

c语言三种排序

常用的C语言排序算法主要有三种:冒泡排序、选择排序和插入排序。

1.冒泡排序冒泡排序:

从第一个数开始,依次比较,满足判断条件时进行交换。
代码执行(以降序排序为例)

#include

intmain()

{

intarray[10]={6,9,7,8,5,3,4,0,1,2};

for(core=0;i<10>

for(intj=0;j<10>

{

{//前一个数字大于后一个数字时发生更改temp=array[j];

}

}//打印数组for(core=0;i<10>

2.选择排序以升序为例:

即在指定下标的数组元素后(指定下标的元素通常从第一个元素开始,然后按顺序返回)查找Values​​除指定下标元素之外的元素与指定元素进行比较,如果满足条件则更改。
与冒泡排序的区别可以理解为冒泡排序是比较两个相邻的值,而选择排序是遍历数组找到数组元素并与指定数组元素进行比较。
(以升序为例)

#include

intmain()

intarray[10]={6,9,7,8,5,3,4,0,1,2};

inttemp,索引;

for(core=0;i<9>

{

index=j;

}

if(i!=index)

{

temp=array[i];

array[i]=array[索引];

数组[索引]=temp;

}

for(core=0;i<10>

printf("%2d"array[i])

return0;

}

3.快速排序

它通过一次排序将待排序的数据分成两个独立的部分,其中一个部分的所有数据都小于另一部分的所有数据,然后用这种方法对两个部分进行排序整个排序过程可以递归地完成,从而使整个数据成为一个有序的序列。

voidQuickSort(int*arr,intsize)

{

inttemp,i,j;

for(i=1;i0;j--)

{

if(arr[j]

{

temp=arr[j];

arr[j]=arr[j-1];

arr[j-1]=temp;

}

}

}

用C语言编写一个快速排序算法输入10个数

1.“快速排序”利用了递归原理下面的例子说明了“快速排序”的原理。
首先,给定一个数组{53,12,98,63,18,72,80,46,32,21},首先找到第一个数字——53,并将其作为中间值,即把53放入一个位置,其左侧的值小于它,而其右侧的值大于它。
{21,12,32,46,18,53,80,72,63,98},因此对一个数组进行排序就变成对两个小数组进行排序-53左边的数组和53右边的数组,以及两者表以同样的方式继续,直到顺序完全正确。
一般来说,冒泡法是程序员首先接触到的排序方法。
它的优点是原理简单,易于编程实现,但缺点是速度太慢。
2.快速排序代码:

#includevoidfastsort(inta[],intleft,intright){inti,j,temp;我=左;j=右;温度=a[左];if(左>右)返回;while(i!=j){while(a[j]>=temp&&j>i)j-;if(j>i)a[i++]=a[j]While(a[i];<=Temp&&J>I)i++;如果(j>i)a[j-]=a[i];a[i]=温度;快速排序(a,左,i-1);快速排序(a,i+1,右);}voidmain(){inta[]={53,12,98,63,18,72,80,46,32,21};,0.9);/*排序结果*/for(i=0;i<10>

C语言选择法排序算法问题。

循环开始遍历数组,选择j(j最初为0)个元素,并分配p=j。
该循环确定i的比例最小的数(j+1到n内),这是一个嵌套循环。
一旦找到a[p]>a[i],那么p=i就是p始终保持的最小值。
内循环结束后,可以得到整个数组的前(n-j)个元素中的最小值a[p],通过交换元素的值就可以得到a[j]。
a[p]和a[j]是第(n-j)个最小值下的数组,在一次循环中,j=j+1去掉前j个数(已经从小到大排序),最小值找到了,并将其放入a[j]中。
当外层循环结束,数组完成时,继续循环下去,排序的总体思路是在第一个循环中找到整个数组中最小的数,并与第一个元素交换,使第一个元素最小。
,在第二个循环中,排除第一个数字并执行上述操作并将其放入第二个元素中,循环这样完成排序
热门文章
1
Java代码实现:判断三角形类型及绘制倒... JAVA编程:根据用户输入的三角形的三个边长,判断三角形是不是直角三角形?pac...

2
Python编程:三种方法比较并输出三个... python比较三个数大小Python比较了以下三个数字的伟大:如果不同的写作,...

3
JavaScript字符串截取方法汇总与... JS截取指定字符串到指定字符串之间的内容结论:JavaScript中的对应方法可...

4
C语言位运算符详解: >>=... C语言中“>>=,<<=,&=,^=,|=”分别...

5
揭秘前端与后端:技术差异与协作关系 前端开发与后端开发的关系是怎样的简而言之,前端的前端是您看的所有东西,这是前端。...

6
Python模块实战:随机列表生成、排序... python中编写一个模块,模块中包含随机生成N个元素的列表、排序列表、求最大以...

7
SQL查询中WHERE与HAVING的区... sql语句中where和having的区别在SQL查询中,有两个关键字用于过滤数...

8
C语言实现正整数各位数字逆序输出及整数大... c语言:&#65532; 输入一个正整数,按从低到高顺序依次输出其各位数...

9
JavaScript ES6模板字符串详... js中模板字符串的使用模板字符串已添加到ES6 中,从而使文本操作更加灵活并解决...

10
C语言while循环深入解析及用法详解 c语言while用法 c语言while用法是什么1 在C中使用语言的使用分析如下...