c语言选择排序法详解 c语言编程:随机输入五个整数,利用选择排序法对输入的数进行从小到大排序?
c语言编程:随机输入五个整数,利用选择排序法对输入的数进行从小到大排序?
你的程序逻辑有些问题,输入,排序,输出分开做,这样更明确,更清晰,代码如下:#include <stdio.h>#include <stdlib.h>int main(){int a[5]int i, j, tint min// 输入printf("input 5 numbers:n")for (i = 0 i<5 i )scanf("%d", &a[i])// 选择排序for (i = 0 i < 5 i ) {for (j = i 1 j < 5 j ) {if (a[j] < a[i]) {t = a[i] a[i] = a[j] a[j] = t}}}// 输出printf("the sorrted numbers:n")for (i = 0 i < 5 i ) {printf("%d ", a[i])}printf("n")system("pause")return 0}运行结果:
快速排序法c语言?
快速排序是基于分治技术的重要排序算法,排序算法按照元素的值对它们进行划分。
划分是对给定数组中的元素的重新排序,使得A [ s ] A[s]A[s]左边的元素都小于等于A [ s ] A[s]A[s],而右边A [ s ] A[s]A[s]右边的元素都大于等于A [ s ] A[s]A[s]。
显然,建立了一个划分以后,A [ s ] A[s]A[s]已经位于它在有序数组中的最终结果,接下来我们可以继续对A [ s ] A[s]A[s]前和A [ s ]A[s]A[s]后的子数组分别进行排序(例如,使用同样的方法)。
注意,它和合并排序不同之处在:
在合并排序算法中,将问题划分为两个子问题,是很快的,算法的主要工作在于合并子问题的解;
在快速排序中,算法的主要工作在于划分阶段,而不需要再去合并子问题的解了。
C语言:用选择排序法对一个数组里的数进行排序,从小到大,要求选出小的进行排序?
C语言:用选择排序法对一个数组里的数进行排序,从小到大,要求选出小的进行排序
代码如下,如果运行错误,支持反驳。
#include<stdio.h>
intmain()
{
inti=0
inta[10]={0,5,2,3,6,9,8,7,4,1}
intj=0
inttmp=0
intm=sizeof(a)/sizeof(a[0])//s数组大小
for(i=0i<m-1i )//比较m-1次
{
for(j=0j<m-i-1j )//最后一次比较a[m-i-1]与a[m-i-2]
{
if(a[j]>a[j 1])//如果a[j]比a[j 1]大则交换内容
{
tmp=a[j 1]
a[j 1]=a[j]
a[j]=tmp
}
}
}
for(i=0i<mi )
{
printf("%d",a[i])//打印
}
printf("n")
return0
}
C语言怎样对二维数组中每个元素进行选择排序?
参考代码:
#include <stdio.h>
#include "stdlib.h"
#include "time.h"
int main(int argc,char *argv[]){
int a[5][8],i,j,k,t,*p
printf("排序前:n")
srand((unsigned)time(NULL))
for(i=0i<5i ){//为二维数组赋值
for(j=0j<8printf("=",a[i][j ]=rand()0))
printf("n")
}
printf("排序后:n")
p=(int *)a//降为一维,这样排序简单
for(t=i=0i<40i ){//选择法排序
for(k=i,j=k 1j<40j )
if(p[k]>p[j])
k=j
if(k!=i)
j=p[k],p[k]=p[i],p[i]=j
printf( t%8 ? "=" : "=n",p[i])
}
return 0
}
C语言中冒泡排序法和选择法的不同是什么本质区别是什么?
是这样的 区别主要在交换的方式上 每一轮都把最大或最小的元素筛选出来放在相应的位置上 这是相同的 但是 对于每一轮 比如第一轮 要把1~n中最大的那个放到n这个位置 冒泡法每次比较和移动相邻的两项 而选择排序每次交换当前项和第n项 我把代码写出来你就懂了: 冒泡: fori:=1ton-1do if(a[i]>a[i 1])thenswap(i,i 1) 选择: fori:=1ton-1do if(a[i]>a[n])thenswap(i,n) (swap表示交换) 总的来说,两种排序比较的次数是相同的 但交换的次数,选择排序是更少的 虽然两者的时间复杂度都是O(n^2) 但通常,选择排序更快一点
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。