重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
排序数组可以使用冒泡算法:如果前一个数据比后一个大,则交换。
创新互联公司长期为上1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为新河企业提供专业的网站建设、成都做网站,新河网站改版等技术服务。拥有十年丰富建站经验和众多成功案例,为您定制开发。
#include stdio.h
// 使用冒泡算法升序数组src
void sort(int *src, int len)
{
int tem;
for (int i = 0; i len; i++)
{
for (int j = 0; j len - i - 1; j++) // 每循环一次,则少一次
if (src[j] src[j+1]) // 如果前一个数据比后一个大,则交换
{
tem = src[j];
src[j] = src[j+1];
src[j+1] = tem;
}
}
}
int main()
{
int a[10] = {2, 5, 9, 6, 4, 7, 8, 1, 0, 3};
sort(a, 10); // 排序
for (int i = 0; i 10; i++) // 输出结果
printf("%d ", a[i]);
return 0;
}
#includestdio.h
#define N 100
void paixu(int *, int *, int);//声明函数
int main()
{
int a[N],c[N];
int i,n=0;
printf("请输入n个整数:");
for(i=0;;i++)
{
scanf("%d",a[i]);
n++;
if(getchar()=='\n')
break;
}
paixu(a, c, n);//调用函数,数组只需给出数组名
return 0;
}
void paixu(int a[N],int c[N], int n)
{
int i,j,s=0;
for(i=0;in;i++)
{
c[i]=0;
}
for(i=0;in;i++)
for(j=i+1;jn;j++)
{
if(a[i]==a[j])
c[i]=1;
}
for(i=0;in;i++)
{
s=1;
for(j=0;jn;j++)
{
if(c[j]==0a[i]a[j])
{
s++;
}
}
printf("%d ",s);
}
}
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; i10-1; i++){
isSorted = 1; //假设剩下的元素已经排序好了
for(j=0; j10-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; i10; 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;in;++i)
scanf("%d",a+i);
//接下来进行排序
for(i=0;in-1;++i)//因为每次需要和a[i]后面的数进行比较,所以到a[n-2](倒数第2个元素)就行
{
for(j=i+1;jn;++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;jn;++j)
printf("%-5d",a[j]);
printf("\n\n");
}
return 0;
}
排序数组可以使用冒泡算法:如果前一个数据比后一个大,则交换。
{
int i,j,t,a[6];
printf("Please input 6 integers:\n");
for(i=0;i6;i++)
scanf("%d",a[i]);
for(i=0;i5;i++) /* 冒泡法排序 */
for(j=0;j6-i-1;j++)
if(a[j]a[j+1])
{t=a[j];/* 交换a[i]和a[j] */
a[j]=a[j+1];
a[j+1]=t;
}
优点:
简洁紧凑、灵活方便:C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。
以上内容参考:百度百科-c语言程序设计