C语言:用冒泡法从高到低排序10 个数,然后进行反排序 c语言编程:对10个数冒泡排序(升序)。

作者&投稿:温芝 (若有异议请与网页底部的电邮联系)
冒泡法从大到小排序:
int main(void)
{
int temp,i,j,a[10];
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
if(a[j]<a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
return 1;
}
用冒泡法从小到大排序:
int main(void)
{
int temp,i,j,a[10];
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
if(a[j]>a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
return 1;
}

void BubbleSort(int *R, int n)
{
int i,j;
bool exchange; //交换标志
for(i=1;i<n;i++){ //最多做n-1趟排序
exchange=FALSE; //本趟排序开始前,交换标志应为假
for(j=n-1;j>=i;j--) //对当前无序区R[i..n]自下向上扫描
if(R[j+1].key<R[j].key){//交换记录
R[0]=R[j+1]; //R[0]不是哨兵,仅做暂存单元
R[j+1]=R[j];
R[j]=R[0];
exchange=TRUE; //发生了交换,故将交换标志置为真
}
if(!exchange) //本趟排序未发生交换,提前终止算法
return;
} //endfor(外循环)
} //BubbleSort

void reverse(int *R, int n)
{
int i;
for(i =0; i<n/2 ; i++)
{
int k = R[i];
R[i] = R[n-i];
R[n-i] = k;
}
}

int main()
{
int r[10] = {1,5,2,3,34,7,34,78,12,11};
BubbleSort(R, 10);
reverse(R,10);
}

C语言:用冒泡法从高到低排序10 个数,然后进行反排序~

冒泡法从大到小排序:
int main(void)
{
int temp,i,j,a[10];
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
if(a[j]<a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
return 1;
}
用冒泡法从小到大排序:
int main(void)
{
int temp,i,j,a[10];
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
if(a[j]>a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
return 1;
}

#include
int main(){
int number[10] = {95, 45, 15, 78, 84, 51, 24, 12,34,23};
for (int j = 0; j < 9; j++)
for (int i = 0; i < 9 - j; i++) {
if(a[i] > a[i + 1]) {
int temp = a[i];a[i] = a[i + 1];
a[i + 1] = temp; }
}
for (int i = 0; i < 10; i++) {
printf(“%d”,a[i]); }
}

扩展资料:
常见排序算法
快速排序、希尔排序、堆排序、直接选择排序不是稳定的排序算法,而基数排序、冒泡排序、直接插入排序、折半插入排序、归并排序是稳定的排序算法。

插入排序
已知一组升序排列数据a[1]、a[2]、……a[n],一组无序数据b[1]、b[2]、……b[m],需将二者合并成一个升序数列。
首先比较b[1]与a[1]的值,若b[1]大于a[1],则跳过,比较b[1]与a[2]的值,若b[1]仍然大于a[2],则继续跳过,直到b[1]小于a数组中某一数据a[x],则将a[x]~a[n]分别向后移动一位,将b[1]插入到原来a[x]的位置这就完成了b[1]的插入。
b[2]~b[m]用相同方法插入。
快速排序
快速排序是大家已知的常用排序算法中最快的排序方法。已知一组无序数据a[1]、a[2]、……a[n],需将其按升序排列。首先任取数据a[x]作为基准。
比较a[x]与其它数据并排序,使a[x]排在数据的第k位,并且使a[1]~a[k-1]中的每一个数据a[x],然后采用分治的策略分别对a[1]~a[k-1]和a[k+1]~a[n]两组数据进行快速排序。
希尔排序
已知一组无序数据a[1]、a[2]、……a[n],需将其按升序排列。
首先取一增量d(d<n),将a[1]、a[1+d]、a[1+2d]……列为第一组,a[2]、a[2+d]、a[2+2d]……列为第二组……,a[d]、a[2d]、a[3d]……列为最后一组以次类推,在各组内用插入排序,然后取d'<d,重复上述操作,直到d=1。
参考资料:排序-百度百科

C语言:用冒泡法从高到低排序10 个数,然后进行反排序
答:if(a[j]<a[j+1]){ temp=a[j];a[j]=a[j+1];a[j+1]=temp;} for(i=0;i<10;i++)printf("%d ",a[i]);return 1;} 用冒泡法从小到大排序:int main(void){ int temp,i,j,a[10];for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<9;i++)for(j=0;j<9-i...

如何用冒泡法对10个数从大到小排序?
答:用冒泡法对10个数从大到小排序如下:def bubble_sort(nums):for i in range(len(nums)):for j in range(len(nums)-1):if nums[j]<nums[j+1]:nums[j],nums[j+1]=nums[j+1],nums[j]return numsnums=[34,2,10,-9,89,76,17,-23,55,48]#可以替换为任何10个数的列sorted_nums...

用C语言,随机输入10个整数,用冒泡排序法对这些整数进行从小到大排序...
答:int a[10];int b[10]={9,10,11,12,1,2,3,4,0,1};int c[10]={1,2,3,4,13,14,15,16,2,3};int i;printf("请输入待排序的10个数:");for(i=0;i<10;i++){ scanf("%d",&a[i]);} fun(a);printf("\n排序后的数列如下:\n");for(i=0;i<10;i++){ printf("...

在C语言中如何用冒泡法,输入10个人的序号和成绩,对成绩从大到小进行...
答:include<stdio.h> int main(){int a[10];int b[10];int i,j,t;printf("num score\n");for(i=0;i<10;i++){scanf("%d%d",&b[i],&a[i]);//输入值 printf("\n");} for(j=0;j<9;j++)for(i=0;i<9-j;i++)if(a[i]<a[i+1]){t=a[i];a[i]=a[i+1];...

C语言从键盘输入10个数,使用冒泡法对这10个数进行排序。要求使用指针...
答:if(a[j]>a[j+1])//由小到大排序 { temp=a[j];a[j]=a[j+1];a[j+1]=temp;flag=1;//若进行了比较,则将flag置1 } } } void main(){ int a[10],i;printf("pleaseinput10numbers:\n");for(i=0;i<10;i++)scanf("%d",...

用C语言编程:从键盘输入10个学生的成绩,由高到低排序输出成绩
答:{ cout << "请输入第" << i+1 << "名学生的成绩;" << endl;cin >> s[i];} for (i = 0; i<10; i++){ for (j = 0; j<9 - i; j++)if (s[j]<s[j + 1]){ t = s[j + 1];s[j + 1] = s[j];s[j] = t;} } cout << "成绩由高到低为;";for ...

在键盘里输入10个学生的成绩,用冒泡排序法从大到小进行排序,分别输出...
答:int k = 0;//中间变量,用于冒泡排序 for (int i = 0; i < newarr.Length; i++)//冒泡排序 { for (int j = i + 1; j < newarr.Length; j++){ if (newarr[i] < newarr[j]){ k = newarr[i];newarr[i] = newarr[j];newarr[j] = k;} } } Console.Write("原始...

用冒泡排序法对10个字符串排序,并按从小到大的顺序输出.需要用c语言...
答:include "stdio.h"#include "string.h"int main(){ char co[10][20]={0}; char *p[10]={NULL},*tmp=NULL; int i,j; for(i=0;i<10;i++) p[i]=co[i]; printf("请输入10个字符串:\n"); for(i=0;i<10;i++) gets(co[i]); for(i=0;i<...

C语言编写函数用冒泡法对数组中10个整数由大到小排序,并在主函数中调用...
答:void fun(int *num){ int temp;for(int i=0; i<10; ++i)for(int j=0; j<10-i-1; ++j){ if(num[j]<num[j+1]){ temp=num[j];num[j]=num[j+1];num[j+1]=temp;} } } void main(){ int num[10]={3,2,4,1,5,6,4,3,9,8};fun(num);for(int i=0; i<10...

用冒泡排序将10个整数按照由大到小的顺序(降序)排序
答:include<stdio.h>void main(){ int a[10]; int i,j,t; printf("请输入10个数:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); printf("\n"); for(j=0;j<9;j++) for(i=0;i<9-j;i++) if(a[i]...