问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求C语言将数组元素大小排序!!86

发布网友 发布时间:2024-03-05 07:48

我来回答

4个回答

热心网友 时间:2024-07-19 00:31

C语言将数组元素大小排序方法:

以下使用的是冒泡排序法实线数组从小到大排序。

思想:每次相邻两个数比较,若升序,则将大的数放到后面,一次循环过后,就会将最大的数放在最后。

10、2、3、4、5、6、9、8、7、1是输入的待排序的数列,经过第一次排序,将最大的,10放在最后,第二次排序,将剩下的2、3、4、5、6、9、8、7、1进行冒泡,将当前最大的9放在倒数第二的位置,以此类推。

以下是具体代码:

#include <stdio.h>

int main(){

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

int i, j, temp, isSorted;  

//优化算法:最多进行 n-1 轮比较

for(i=0; i<10-1; i++){

isSorted = 1;  //假设剩下的元素已经排序好了

for(j=0; j<10-1-i; j++){

if(nums[j] > nums[j+1]){

temp = nums[j];

nums[j] = nums[j+1];

nums[j+1] = temp;

isSorted = 0;  //一旦需要交换数组元素,就说明剩下的元素没有排序好

}

}

if(isSorted) break; //如果没有发生交换,说明剩下的元素已经排序好了

}

for(i=0; i<10; i++){

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

}

printf("\n");

return 0;

}

扩展资料:

其他将数组从小到大排序的算法

以下使用的是选择排序法实现数组从小到大排序。

思想:从第一个数开始,每次和后面剩余的数进行比较,若升序,则如果后边的数比当前数字小,进行交换,和后面的所有的数比较、交换后,就会将当前的最小值放在当前的位置

输入的序列为10、2、3、4、5、6、9、8、7、1进行一次排序后将最小的数放在了第一位(a[0]与它后面的所有数进行比较,若a[0]比后面的数大,进行交换),以此类推。

以下是具体代码:

#include <stdio.h>

int main(void){

int a[1001];

int n,i,j,t;

scanf("%d",&n);//n为要排序的数的个数

//输入需要排序的数

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

scanf("%d",a+i);

//接下来进行排序

for(i=0;i<n-1;++i)//因为每次需要和a[i]后面的数进行比较,所以到a[n-2](倒数第2个元素)就行

{

for(j=i+1;j<n;++j)//j从i后一个开始,a[i]与a[j]进行比较

{

if(a[i]>a[j])//a[i]为当前值,若是比后面的a[j]大,进行交换

{

t=a[i];

a[i]=a[j];

a[j]=t;

}

}//每排序一次,就会将a[i](包括a[i])之后的最小值放在a[i]的位置

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

printf("%-5d",a[j]);

printf("\n\n");

return 0;

}

热心网友 时间:2024-07-19 00:31

void sort (int* a,int max)
{
int temp;
for (int i=0;i<max;i++)
for (int j=i+1;j<max;j++)
{
if (a[j] < a[i])
{
temp=a[j];
a[j]=a[i];
a[i]=temp;
}
}
}

热心网友 时间:2024-07-19 00:35

#include<stdio.h>

void main()
{
int a[10] = { 10,2,3,4,5,6,9,8,7,1 };
int i,j,t;
for(j=0;j<10;j++)
for(i=0;i<10-1-j;i++)
if(a[i]>a[i+1]) /* 由小到大,由大到小时改为< */
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
}

热心网友 时间:2024-07-19 00:35

#include <stdio.h>

int main(){

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

int a,b, text, hello;                           

for(a=0; a<10-1; a=a+1) {                 //在这里进行比较的开始的代码

hello = 1;                                        //假如剩下的元素已经被排序好了,然后接着进行下面的比较

for(b=0; b<10-1-i; b=b+1){

if(numbers[b] > numbers[b+1]){

text= numbers[b];

numbers[b] = numbers[b+1];

numbers[b+1] = text;

hello= 0;                                          

}

}

if(hello) break;                             

}

for(a=0; a<10; a=a+1){

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

}

printf("\n");

return 0;

}

扩展资料:

C语言中数组元素大小的相关排序规则:

一、首先需要对数组中的元素进行排列,默认是以字符串的规则进行从小到大排序;可接收一个参数:自定义的规则相关排序。参数的具体要求如下:

1、参数首先必须是一个函数;

2、函数必须有一个明确的返回值;

3、返回值必须是number类型,但不可以是NaN。

二、排序中的具体规则:

1、首先每次从数组中挑选出两个元素传入函数中,进行比较,直到所有进行排列的元素都被挑选完毕以后就不要再进行挑选;

2、如果返回值是一个正数,就交换这彼此的位置,实现大小的正确排列;

3、如果返回值是一个负数或0,此时说明大小位置的顺序是正确的,此时就不需要交换彼此的位置。

4、默认同一字符的全角字符看做半角字符。不区分同一个字符(如日文的片假字)的半角与全角状态。相同元素,维持原序,默认区分字母大小写,同一个字符小写在前,大写在后。

注意:对数组的元素进行排序需要不断比较两个数字的大小,10个元素排序一共需要比较9次,直到所有的元素被都完完全全地被比较一次。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
企业培训学到了什么 培训感悟简短 有关培训的感悟 通过培训学到什么 培训你学到了什么 领导问培训学到什么怎么回复 Linux系统安装FTP服务器 Linux系统的网络文件共享 建筑的七盏明灯的内容简介 面向对象设计七大原则 简单说 交互设计七大定律 手指上长了一个红色的硬硬的东西,一按就疼,这根手指在两三个星期前碰 ... 请各位大神帮我一下。这个背景音乐是faded,这个视频到底是mv还是电影... [讨论]我的360安装游戏到硬盘超慢 怎么回事啊? 台式电脑win7升级win10用的360助手,一直安装怎么办,好像是卡这了?_百... 被核辐射了,会不会变异? 请问这个圆孔的是什么接口? whatdoyoudoonsunny回答3 whatdoyoudoonchildren&#39;sday whatdoyoudoonsundaymorning是什么意...1 whatdoyoudoonfridays是什么意思3 whatdoyoudoonthatday什么汉语意思10 whatdoyoudoonmonday答句3 降龙木手串是男的戴的吗? 英语好的来,求翻译英语!不要网上翻译软件翻的!1 翻译几句专业英语,不要翻译器!翻的好有加分~ 求中文翻译,不要翻译器翻!谢谢!1 文件重命名然后整个文档消失 在Word里最近使用的文档里面可以看见然后点... 海泰半导体是海力士和谁合作的 声音的三大特性是--- ---和--- 预计海运费时多预计了120美金,也就是说报关金额多报了120美金,这有没... c语言中,用一维数组排序十个整数,怎么做47 滨州大饭店有钟点房吗 方大同有一首歌,歌词有一小部分是&quot;太多人失忆,太多人忘记,太多人都说爱... HPV阳性也会引起头皮屑增多吗 外公坐牢孙子能当兵吗 大将军瓷砖生产基地在哪里 天龙八部康敏咬段正淳的哪一集 黄日华和胡军版的都要 速度 悦动机油机滤多久换一次? 悦动机油机滤多久换? 厦门BRT节假日会不会加班加点 悦动机油机滤多久换一次 悦动2010款用什么机油滤 这款产品可以用在2010年款悦动自动豪华版嘛... 现代悦动机滤底部的数字代表什么 年度总结和计划属于统计工作吗 11款悦动机滤是豹王6905还是6731? 厦门站到亿力大厦怎么走 工作计划包括工作目的、工作的主要内容、完成工作的所需预算、所用方 ... 精草铵膦母液含量 申请报告书怎么写范文 梧田一中录取之后的暑假作业 作文一篇 求范文!