编一程序用简单选择排序方法对n个整数排序(从大到小)。 对n个数进行降序排列,简单选择排序的算法思

作者&投稿:严脉 (若有异议请与网页底部的电邮联系)
编程,对N个数从小到大用选择排序~

#include
int main()
{int i,j,t,n,a[100];
printf("请输入有几个整数(<=100):");
scanf("%d",&n);
printf("请输入这%d个整数:
");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n-1;i++)
{k=i;
for(j=i+1;j<n;j++)
if(a[j]<a[k])
k=j;
t=a[i];a[i]=a[k];a[k]=t;
}
printf("排序以后的数:
");
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("
");
return 0;
}

#define N 26#include void fun(char str[]);int main(){int i,j;char str[N]; for (i=0;istr[j]){ min = str[j]; mark=j; } min=str[i];str[i]=str[mark];str[mark]=min; }}
那个函数就是fun()函数。。。

#include<stdio.h>

int main()

{int i,j,t,n,a[100];

printf("请输入有几个整数(<=100):du");

scanf("%d",&n);

printf("请输入这%d个整数:zhi
");

for(i=0;i<n;i++)

scanf("%d",&a[i]);

for(i=0;i<n-1;i++)

{k=i;

for(j=i+1;j<n;j++)

if(a[j]<a[k])

k=j;

t=a[i];a[i]=a[k];a[k]=t;

}

printf("排序以后的数:
");

for(i=0;i<n;i++)

printf("%d ",a[i]);

printf("
");

return 0;

}

扩展资料:

在简单选择排序过程中,所需移动记录的次数比较少。最好情况下,即待排序记录初始状态就已经是正序排列了,则不需要移动记录。

最坏情况下,即待排序记录初始状态是按第一条记录最小,之后的记录从小到大顺序排列,则需要移动记录的次数最多为3(n-1)。

简单选择排序过程中需要进行的比较次数与初始状态下待排序的记录序列的排列情况无关。当i=1时,需进行n-1次比较;当i=2时,需进行n-2次比较;依次类推,共需要进行的比较次数是(n-1)+(n-2)+…+2+1=n(n-1)/2,即进行比较操作的时间复杂度为O(n^2),进行移动操作的时间复杂度为O(n)。

参考资料来源:百度百科-简单选择排序



程序如下:

#include<stdio.h>

void fuc(int a[],int n)

{

    int i,max,m,k,t,j;

    m=n; 

    for(k=0;n>0;n--,k++)

    {   

    for(max=a[k],i=m;i>=k;i--)

        {

        if(a[i]>=max) 

        {

        max=a[i];

        t=i;

    }

    }

    j=a[k];

    a[k]=max;

a[t]=j;

}

for(i=0;i<=m;i++)

{

    printf("%d",a[i]);

    if(i!=m) printf(" ");

}

}

int main()

{

int i,a[100000],n;

scanf("%d",&n);

for(i=0;i<n;i++)

    scanf("%d",&a[i]);

    i--;

fuc(a,i);

return 0;

}

扩展资料:

计算机程序,港、台译做电脑程式。计算机程序是一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息化工具。

它以某些程序设计语言编写,运行于某种目标结构体系上。打个比方,程序就如同以英语(程序设计语言)写作的文章,要让一个懂得英语的人(编译器)同时也会阅读这篇文章的人(结构体系)来阅读、理解、标记这篇文章。

一般的,以英语文本为基础的计算机程序要经过编译、链接而成为人难以解读,但可轻易被计算机所解读的数字格式,然后放入运行。

程序是一个指令序列。




...A冒泡排序 B简单选择排序 C直接插入排序 D 堆排序
2.交换法: 交换法的程序最清晰简单,每次用当前的元素一一的同其后的元素比较并交换。 #include <iostream.h> void ExchangeSort(int* pData,int Count) { int iTemp; for(int i=0;i <Count-1;i++) { for(int j=i+1;j <Count;j++) { if(pData[j] <pData[i]) { iTemp = pData[i]; p...

高分求数据结构(C语言)高手做题!(200悬赏+50追加+20采纳=270分)_百度...
66.如果只想得到1000个元素组成的序列中第5个最小元素之前的部分排序的序列,用( B )方法平均时间最少。A)起泡排序 B)简单选择排序 C)Shell排序 D)堆排序问题补充:77.一组记录的排序码为(48,24,18,53,16,26,40),采用冒泡排序法进行排序,则第一趟排序需要进行记录交换的次数是...

数据结构多选,谢谢了
A、1 B、2 C、3 D、 4 E、 6 F、7 G、8 H、9 ACEG 10、在下列排序方法中,每趟排序结束后都能选出一个元素放在其最终位置上的是 A、简单选择排序 B、起泡排序 C、快速排序 D、直接插入排序 E、堆排序 ABCE 11、下列排序方法中,——是稳定的排序方法 A简单选择排序 ...

急求:用C语言程序对一组大小不定的数字排序拜托了各位 谢谢
第一个就是冒泡排序法,几乎是最简单的排序方法:include <stdio.h> include <conio.h> define N 10 int main(void ){ int i,j,temp ;int a[N]= {0,1,2,3,4,5,6,7,8,9};\/\/ 冒泡排序法进行排序 for(i = 0;i < N - 1;i++ ){ for(j = 0;j < N-i-1;j++ ){ if...

程序的三种基本控制结构
程序的三种基本控制结构如下:1、顺序结构,程序中各个操作按照在源代码中的排列顺序,自上而下,依次执行 2、选择结构,根据某个特定的条件进行判断后,选择其中一支执行;3、循环结构,在程序中需要反复执行某个或某些操作,直到条件为假或为真时才停止循环。【顺序结构】顺序结构是最简单的程序结构,...

求计算机二级ms的选择题题目
10.支持子程序调用的数据结构是()。答案:A A)栈 B)树 C)队列 D)二叉树 11.某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是()。答案:C A)10 B)8 C)6 D)4 12.下列排序方法中,最坏情况下比较次数最少的是()。答案:D A)冒泡排序 B)简单选择排序 C)直接插入...

C语言问题:设计一个简单的菜单选择程序,根据选择可实现a与b的四则运...
scanf("%d",&a);printf("请输入第二个数:");scanf("%d",&b);printf("\\n\\t1 加法运算\\n\\t2 减法运算\\n\\t3 乘法运算\\n\\t4 除法运算\\n请选择(1\/2\/3\/4):");scanf("%d",&c);switch(c){ case 1:printf("\\n您选择的是加法运算:\\n%d +%d =%d",a,b,a+b);break;case 2:...

简单C语言程序设计。要求输入1则从小到大排序输出,输入2则从大到小...
楼主你好!根据你的要求,我已经将代码实现如下,望采纳!include<stdio.h> int main(){ int i,n;int a[3];printf("请输入三个整数,以空格隔开:");scanf("%d%d%d",&a[0],&a[1],&a[2]);printf("\\n输入1选择从小到大排序,输入2选择从大到小排序:");fflush(stdin);scanf("%d",...

求以下c语言编程:一个简单的学生成绩管理系统。其中每个学生信息包括学 ...
一个简单的学生成绩管理系统。其中每个学生信息包括学号、姓名、数学成绩、英语成绩、计算机成绩。编写一个菜单程序分别完成以下功能:每个学生的信息使用结构体变量存储。编写函数fu... 一个简单的学生成绩管理系统。其中每个学生信息包括学号、姓名、数学成绩、英语成绩、计算机成绩。编写一个菜单程序分别完成以下功能:每个...

输入一数组元素个数及数值,并对数组进行选择排序。(程序设计)
include<iostream.h> void sort(int a[],int n){ int t,i,j,k,m;for(i=0;i<n-1;i++){ k=i;for(j=i+1;j<n;j++)if(a[j]<a[k])k=j;if(k!=i){t=a[i];a[i]=a[k];a[k]=t;} for(m=0;m<n;m++){ cout<<a[m];cout<<" ";} cout<<"\\n";} } void...

泾川县13480021743: 编程,对N个数从小到大用选择排序 -
再轻悦子: #include<stdio.h> int main() {int i,j,t,n,a[100];printf("请输入有几个整数(<=100):"); scanf("%d",&n); printf("请输入这%d个整数:\n"); for(i=0;i<n;i++)scanf("%d",&a[i]); for(i=0;i<n-1;i++) {k=i; for(j=i+1;j<n;j++) if(a[j]<a[k])k=j;t=a[i];...

泾川县13480021743: 使用选择排序方法将用户输入的任意n个整数按从大到小的顺序排序并输出 编程题
再轻悦子: 假定数据放在a数组内(全局变量),已有n个整数,调用以下过程就可以排好序了.至于输入和输出,我想应该可以了吧? procedure select; var i,k,x:integer; begin for i:=1 to n-1 do begin k:=i; for j:=i+1 to n do if a[j]&gt;a[k] then k:=j; x:=a[i]; a[i]:=a[k]; a[k]:=x; end; end;

泾川县13480021743: 编程 选择排序:输入n个整数,对其进行降序排序 -
再轻悦子: # include int main() { int b[100],i,c,j,n; printf("输入正整数n: \n"); //这个作用就是让下面的for语句循环n 比方说10 那么就循环10次 scanf("%d",&n); for(i=1;i<=n;i++) //这个输入n次 { scanf("%d",&b[i]); } for(j=1;jfor(i=1;i<=n-j;i++) //第1趟n...

泾川县13480021743: 在键盘上输入N个整数,试编制程序使该数组中的数按照从大到小的次序排列. -
再轻悦子: #include<stdio.h> #define N 80 void main() { int a[N],i,m=100; void sort(int b[],int k); void print(int b[],int k); printf("\nInput m(<80):"); scanf("%d",&m); for(i=0;i<m;i++) scanf("%d",&a[i]); sort(a,m); print(a,m); return 0; } void sort(int b[],int k) { int i,...

泾川县13480021743: C语言编程——选择排序法,要求:由主函数调用排序子函数,对n个整数进行从小到大的排序,谢了 -
再轻悦子: #include <stdio.h> #define SIZE_N 20 //SIZE_N is the size of the arrayvoid sortFun(int a[], int n) {int temp;for(int i=0;i<n;i++) //进行n个循环,每次选出剩下的最小的数,如第一次选出n个数中最for(int j=i+1;j<n;j++)//小的那个,如a[8],放入a...

泾川县13480021743: c语言 编写实现选择法对n个整数按升序排列的函数 -
再轻悦子: #include <stdio.h> #include <stdlib.h>#define NUM 10 /* run this program using the console pauser or add your own getch, system("pause") or input loop */int main(int argc, char *argv[]) {int arr[NUM],i,j,temp;printf("请输入10个数:\n");...

泾川县13480021743: 编写一个程序,并用函数调用的方法,用数组名作为形式参数和实在参数,实现将n个整数按从小到大排序?? -
再轻悦子: /* 简单选择排序 */#include "stdio.h"void SelectSort(int arr[], int len) {int i, j, k;int temp; for(i=0; i<len-1; i++){k = i;for(j=i+1; j<len; j++){if(arr[j] < arr[k])k = j;}if(k != i){temp = arr[k];arr[k] = arr[i];arr[i] = temp;}} }void main() {int i;int ...

泾川县13480021743: C语言 怎么样用选择法对10个整数排序? -
再轻悦子: 选择法排序是一种简单的容易实现的对数据排序的算法.以整形数组元素为例,有数组A[10],即A[0],A[1],…,A[8],A[9](假设其元素均互不相同).要求对其元素排序使之递增有序.首先以一个元素为基准,从一个方向开始扫描,比如从左至...

泾川县13480021743: 随机产生N个整数,然后用一种排序算法将他们从小到大排序 -
再轻悦子: //C++程序,选择排序#include#include#include void SelectSort(int array[],int n) { int i,j,p; for(i=0;i { p=i; for(j=i+1;j if (array[j] p=j; if (p!=i) { int temp=array[p]; array[p]=array[i]; array[i]=temp; } } for(i=0;i cout cout} void main() { srand(time(0)); int i,n,*num; ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网