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与JavaScript:基础入门... javas是什么?Java是一种面向对象的编程语言,可用于编写跨平台的应用软件。...

2
Java操作文本值:提取与求和技巧详解 java怎么把文本框的数字读出来想加求和获取Java文本中的值并执行操作有两种方...

3
手机QQ浏览器助力安卓用户:JavaSc... 请问,哪种浏览器支持JavaScript?——本人使用安卓手机。他们都受到支持。...

4
C语言实现阶乘累加和:从函数定义到代码示... 用C语言求1到N的阶层的累加和思路:首先定义一个函数计算一个数的阶乘,然后从1到...

5
Python教程:如何验证输入字符串是否... python中如何判断输入的字符串为实数,谢谢!尝试:x=float(input...

6
C语言实现400位高精度计算器:思路解析... 用C语言做一个可进行加减乘除的400位计算器?(求思路)这个可以用个位数全加器的...

7
C语言数组定义与赋值详解:char与in... c语言数组定义和赋值是什么?C语言数组定义为:charc[6]={'c','h'...

8
C语言期末复习攻略:基础知识点+经典例题... c语言怎么学考试基础知识笔记经典例题题库指针大一期末考试题入门二级怎么学代码烟花...

9
JavaScript字符串转数字:三种方... css前端如何把字符串转为数字主要有三种方式:转换函数、强制类型转换和使用js变...

10
掌握Ajax与Java AJAX:异步请... ajax和javaAjax是一种用于改善用户体验的技术。它的本质是使用浏览器内置...