C语言用冒泡法和选择法对10个数进行排序 c语言的一题目:分别用冒泡法和选择法对10个数排序!!谢谢

c\u8bed\u8a00\u7f16\u7a0b\u9898:\u5206\u522b\u7528\u5192\u6ce1\u6cd5\u548c\u9009\u62e9\u6cd5\u5bf9\u8f93\u5165\u768410\u4e2a\u6574\u6570\u7531\u5927\u5230\u5c0f\u6392\u5e8f

#include
void maopao(int *a){
int temp=0;
for(int i=0;i<10-1;++i)//\u53ea\u9700\u8981\u5192\u6ce19\u4e2a\u6570\u6700\u540e\u4e00\u4e2a\u5c31\u5df2\u7ecf\u6709\u5e8f\u4e86
for(int j=0;j<10-i-1;++j)//j\u7684\u53d6\u503c\u9700<10-i-1;\u4e3a\u4f55-1\uff0c
if(a[j]<a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
void xuanze(int *a){
for(int i=0;i<9;i++)
{
int temp=i,b;
for(int j=i+1;j<10;j++)
{
if(a[temp]<a[j])
temp=j;
}
if(i!=temp)
{
b=a[temp];
a[temp]=a[i];
a[i]=b;}
}
}
int main()
{

int a[10]={7,8,5,4,3,2,6,9,0,1};
int b[10]={1,2,5,7,43,23,565,6,9,10};
maopao(a);
for(int n=0;n<10;++n)
printf("%d ",a[n]);
printf("\n");
xuanze(b);
for(int n=0;n<10;++n)
printf("%d ",b[n]);

}

\u6269\u5c55\u8d44\u6599\uff1a
\u9700\u8981\u8bf4\u660e\u7684\u662f\uff1a
1\u3001\u4e00\u4e2aC\u8bed\u8a00\u6e90\u7a0b\u5e8f\u53ef\u4ee5\u7531\u4e00\u4e2a\u6216\u591a\u4e2a\u6e90\u6587\u4ef6\u7ec4\u6210\u3002
2\u3001\u6bcf\u4e2a\u6e90\u6587\u4ef6\u53ef\u7531\u4e00\u4e2a\u6216\u591a\u4e2a\u51fd\u6570\u7ec4\u6210\u3002
3\u3001\u4e00\u4e2a\u6e90\u7a0b\u5e8f\u4e0d\u8bba\u7531\u591a\u5c11\u4e2a\u6587\u4ef6\u7ec4\u6210\uff0c\u90fd\u6709\u4e00\u4e2a\u4e14\u53ea\u80fd\u6709\u4e00\u4e2amain\u51fd\u6570\uff0c\u5373\u4e3b\u51fd\u6570\u3002\u662f\u6574\u4e2a\u7a0b\u5e8f\u7684\u5165\u53e3\u3002
4\u3001\u6e90\u7a0b\u5e8f\u4e2d\u53ef\u4ee5\u6709\u9884\u5904\u7406\u547d\u4ee4\uff08\u5305\u62ecinclude \u547d\u4ee4\uff0cifdef\u3001ifndef\u547d\u4ee4\u3001define\u547d\u4ee4\uff09\uff0c\u9884\u5904\u7406\u547d\u4ee4\u901a\u5e38\u5e94\u653e\u5728\u6e90\u6587\u4ef6\u6216\u6e90\u7a0b\u5e8f\u7684\u6700\u524d\u9762\u3002
5\u3001\u6bcf\u4e00\u4e2a\u8bf4\u660e\uff0c\u6bcf\u4e00\u4e2a\u8bed\u53e5\u90fd\u5fc5\u987b\u4ee5\u5206\u53f7\u7ed3\u5c3e\u3002\u4f46\u9884\u5904\u7406\u547d\u4ee4\uff0c\u51fd\u6570\u5934\u548c\u82b1\u62ec\u53f7\u201c}\u201d\u4e4b\u540e\u4e0d\u80fd\u52a0\u5206\u53f7\u3002\u7ed3\u6784\u4f53\u3001\u8054\u5408\u4f53\u3001\u679a\u4e3e\u578b\u7684\u58f0\u660e\u7684\u201c}\u201d\u540e\u8981\u52a0\u201c \uff1b\u201d\u3002
6\u3001\u6807\u8bc6\u7b26\uff0c\u5173\u952e\u5b57\u4e4b\u95f4\u5fc5\u987b\u81f3\u5c11\u52a0\u4e00\u4e2a\u7a7a\u683c\u4ee5\u793a\u95f4\u9694\u3002\u82e5\u5df2\u6709\u660e\u663e\u7684\u95f4\u9694\u7b26\uff0c\u4e5f\u53ef\u4e0d\u518d\u52a0\u7a7a\u683c\u6765\u95f4\u9694\u3002
7\u3001\u81ea\u5b9a\u4e49\u51fd\u6570\u5728\u4f7f\u7528\u4e4b\u524d\u9700\u8981\u8fdb\u884c\u51fd\u6570\u58f0\u660e\u3002
\u53c2\u8003\u8d44\u6599\uff1a

\u5192\u6ce1\u6392\u5e8f
int swap=0;
int n=10;
for(int i=n;i>0;i--)
{
for(int j=0;j<i;j++)
{
if(a[j]>a[j+1])
{
int temp;
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
swap=1;
}
}
if(swap)break;
}

\u7b80\u5355\u9009\u62e9\u6392\u5e8f
for(int i=0;i<n;i++)
{
for(int j=i+1;j<n;j++)
{
if(a[j]<a[i])
{
int temp;
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}

选择排序算法C语言的实现
选择法排序原理:一次选定数组中的每一个数,记下当前位置并假设它是从当前位置开始后面数中的最小数min=i,从这个数的下一个数开始扫描直到最后一个数,并记录下最小数的位置min,扫描结束后如果min不等于i,说明假设错误,则交换min与i位置上数。 具体实现代码如下:
#include<stdio.h>
/****************************************
**选择排序法对十个整数进行排序 ***
****************************************/
//n为数组长度;
void sort(int a[],int n)
{
int temp,min;
for(int i=0;i<n;i++)
{
min=i;//先假设最小下标为i
for(int j=i+1;j<n;j++)
if(a[j]<a[min])
min=j;//对i之后的数进行扫描将最小的数赋予min
if(min!=i)
{
temp=a[i];
a[i]=a[min];
a[min]=temp;
}//判断min与i是否相等,若=则说明原假设正确反之交换数值
}
}
//用main函数验证
void main()
{
int a[10];
printf("please input the array a:\n");
for(int i=0;i<10;i++)
scanf("%d",&a[i]);
sort(a,10);

for(i=0;i<10;i++)
printf("%d\t",a[i]);
}
冒泡排序法
char array[5]={'2','3','4','1','6'};
int i;
int j;
char temp;
int k;

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

for(j=0;j<4-i;j++)
{
if(array[j]>array[j+1])
{
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}

}

i n t a [ 1 0 ] = { 1 , 2 , 5 , 3 , 4 , 7, 6 , 9 , 8 , 0 } ;
i n t t e m p , i , j , k ;
/ / 冒 泡 法 从 大 到 小 排 序
f o r ( i = 0 ; i < 1 0 - 1 ; i + + ) {
f o r ( j = 0 ; j < n - i ; j + + ) {
i f ( a [ j + 1 ] > a [ j ] ) {
t e m p = a [ j ] ;
a [ j ] = a [ j + 1 ] ;
a [ j + 1 ] = t e m p ;
}
}
}
/ / 选 择 法 从 大 到 小 排 序
f o r ( i = 0 ; i < 1 0 - 1 ; i + + ) {
k = i ;
f o r ( j = i + 1 ; j < 1 0 ; j + + )
i f ( a [ j ] > a [ k ] ) k = j ;
i f ( k ! = i ) {
t e m p = a [ i ] ;
a [ i ] = a [ k ] ;
a [ k ] = t e m p ;
}
}
不就排个序吗,搞的这么复杂

#include <stdio.h>
void main()
{
int a[9],i,j,max,t;
for(i = 0;i < 9;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
for(j = 0;j < 9;j++)
{
for(i = 0;i < 9-j-1;i++)
{
if(a[i] > a[i+1])
{
t = a[i];
a[i] = a[i+1];
a[i+1] = t;
}
}
}
for(i = 0;i < 9;i++)
printf("%d ",a[i]);
}

#include "stdio.h"
void bubble_sort(int array[],int n)
{//冒泡法排序
int i,j,flag,temp;
for(i = 0; i < n-1; i++)
{
flag = 1;
for(j = 0; j < n-i-1; j++)
{
if(array[j] > array[j+1])
{
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
flag = 0;
}
}
if(1 == flag)break;
}
}
void choose_sort(int array[],int n)
{//选择法排序
int i,j,temp;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if (array[i]>array[j])
{
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
void print(int array[],int n)
{//输出数组
int i;
for(i = 0; i < n; i++)
printf("%d ",array[i]);
printf("\n\n");
}
int main()
{
int a[10],i;
printf("please input the array a:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
getchar();
printf("排序前:");
print(a,10);
printf("1.用冒泡法排序。\n2.用选择法排序。\n\n请选择操作:");
switch(getchar())
{
case '1':bubble_sort(a,10);break;
case '2':choose_sort(a,10);break;
default:printf("操作错误!");return 0;
}
printf("\n排序后:");
print(a,10);
return 0;
}

冒泡法:
#define N 10
#include<stdio.h>
maopao(int a[N])
{
int i,j,t;
for(j=0;j<N;j++)
for(i=0;i<N-j;i++)
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
printf("排序后的数组为:\n");
for(i=0;i<N;i++)
printf("%d ",a[i]);
printf("\n");
}

void main()
{
int i,a[N];
printf("请输入10个数:\n");
for(i=0;i<N;i++)
scanf("%d",&a[i]);
printf("\n");
maopao(a[N]);

}

选择法:
#include<stdio.h>
#define N 10
void main()
{
int i,j,k,t,a[N];
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=0;i<N;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(i=0;i<10;i++)
{
printf("%d ",a[i]);

}
printf("\n");
}

  • C璇█鐢ㄥ啋娉℃硶鍜岄夋嫨娉曞10涓鏁拌繘琛屾帓搴
    绛旓細void main(){ int a[10];printf("please input the array a:\n");for(int i=0;i<10;i++)scanf("%d",&a[i]);sort(a,10);for(i=0;i<10;i++)printf("%d\t",a[i]);} 鍐掓场鎺掑簭娉 char array[5]={'2','3','4','1','6'};int i;int j;char temp;int k;for(i...
  • c璇█缂栫▼棰:鍒嗗埆鐢ㄥ啋娉℃硶鍜岄夋嫨娉曞杈撳叆鐨10涓鏁存暟鐢卞ぇ鍒板皬鎺掑簭_鐧惧害...
    绛旓細int a[10]={7,8,5,4,3,2,6,9,0,1};int b[10]={1,2,5,7,43,23,565,6,9,10};maopao(a);for(int n=0;n<10;++n)printf("%d ",a[n]);printf("\n");xuanze(b);for(int n=0;n<10;++n)printf("%d ",b[n]);} ...
  • 鍒嗗埆鐢ㄨ捣娉娉曞拰閫夋嫨娉瀹炵幇瀵10涓鏁版帓搴(鐢卞ぇ鍒板皬)銆(璇风敤C缂栧啓)
    绛旓細printf("%c%c",32,32);} void main(){ int n=10;int a[N];init(a,n);printf("source:\n");
  • C璇█:鐢閫夋嫨娉曞10涓鏁存暟鎺掑簭
    绛旓細int main(int argc,char *argv[]){ int a[10]={7,9,1,5,3,4,2,8,0,6},b[10]={2,8,0,6,5,3,4,7,9,1},i,j,k;for(i=0;i<10;i++){//閫夋嫨娉曞a鐢卞皬鍒板ぇ鎺掑簭 for(k=i,j=k+1;j<10;j++)if(a[k]>a[j])k=j;if(k!=i)j=a[k],a[k]=a[i],a[i]=...
  • 鍦C璇█涓,濡備綍鐢ㄥ嚱鏁板疄鐜,鐢閫夋嫨娉曞10涓鏁拌繘琛鎺掑簭
    绛旓細//閫夋嫨 void sort1(int *a,int n){ for(int i=0;i<n-1;i++) for(int j=i;j<n;j++) if(a[i]>a[j]) sp(a[i],a[j]);}//鍐掓场 void sort2(int *a,int n){ for(int i=1;i<n-1;i++) for(int j=0;j<n-i;j++) if(a[j]>a[j+1])...
  • C璇█鎬庝箞鐢閫夋嫨娉曞10涓鏁存暟鎺掑簭?
    绛旓細int main(int argc,char *argv[]){ int a[10]={7,9,1,5,3,4,2,8,0,6},b[10]={2,8,0,6,5,3,4,7,9,1},i,j,k;for(i=0;i<10;i++){//閫夋嫨娉曞a鐢卞皬鍒板ぇ鎺掑簭 for(k=i,j=k+1;j<10;j++)if(a[k]>a[j])k=j;if(k!=i)j=a[k],a[k]=a[i],a[i]=...
  • C璇█棰:杈撳叆鍗佷釜鏁扮敤涓缁存暟缁勫垎鍒鐢ㄥ啋娉℃硶涓庨夋嫨鎺掑簭娉杩涜鎺掑簭
    绛旓細<conio.h>#define ARR_LEN 255 /*鏁扮粍闀垮害涓婇檺*/#define elemType int /*鍏冪礌绫诲瀷*//* 鍐掓场鎺掑簭 *//* 1. 浠庡綋鍓嶅厓绱犺捣锛屽悜鍚庝緷娆℃瘮杈冩瘡涓瀵圭浉閭诲厓绱狅紝鑻ラ嗗簭鍒欎氦鎹 *//* 2. 瀵规墍鏈夊厓绱犲潎閲嶅浠ヤ笂姝ラ锛岀洿鑷虫渶鍚庝竴涓厓绱 *//* elemType arr[]: 鎺掑簭鐩爣鏁扮粍; int len: 鍏冪礌涓暟 */...
  • 姹c璇█閫夋嫨鎺掑簭娉曞拰 鍐掓场鎺掑簭娉浠g爜!
    绛旓細閫夋嫨娉鐨勭畻娉曪細 鍋囪闇瑕瀵10涓鏁拌繘琛鎺掑簭锛岄偅涔堥鍏堟壘鍑10涓暟閲岄潰鐨勬渶灏忔暟锛屽苟鍜岃繖涓10涓暟鐨勭涓涓紙涓嬫爣0锛変氦鎹綅缃紝鍓╀笅9涓暟锛堣繖9涓暟閮芥瘮鍒氭墠閫夊嚭鏉ラ偅涓暟澶э級锛屽啀閫夊嚭杩9涓暟涓殑鏈灏忕殑鏁帮紝鍜岀浜屼釜浣嶇疆鐨勬暟锛堜笅鏍1锛変氦鎹紝浜庢槸杩樺墿8涓暟锛堣繖8涓暟閮芥瘮鍒氭墠閫夊嚭鏉ョ殑澶э級.. 渚...
  • 杈撳叆鍗佷釜鏁,鐢ㄥ啋娉℃硶瀵鍏舵寜鐓т粠澶у埌灏忕殑椤哄簭鎺掑垪,鐒跺悗杈撳嚭銆俖鐧惧害鐭 ...
    绛旓細鐢ㄤ簩閲嶅惊鐜疄鐜,澶栧惊鐜彉閲忚涓簄,鍐呭惊鐜彉閲忚涓篿銆傚寰幆閲嶅9娆,鍐呭惊鐜緷娆¢噸澶9,8,...,1娆°傛瘡娆¤繘琛屾瘮杈冪殑涓や釜鍏冪礌閮芥槸涓庡唴寰幆j鏈夊叧鐨,瀹冧滑鍙互鍒嗗埆鐢╝[i]鍜宎[i+1]鏍囪瘑,n鐨勫间緷娆′负1,2,...,9,瀵逛簬姣忎竴涓猲,i鐨勫间緷娆′负1,2,...10-n銆 qcnns | 鍙戝竷浜2011-12-08 涓炬姤| 璇勮 0 ...
  • C璇█:閲囩敤鍐掓场鎺掑簭鏂规硶,瀵10涓鏁版寜鐢卞皬鍒板ぇ鐨勭殑椤哄簭鎺掑簭
    绛旓細for(i=0;i<10;i++){ printf("%d",a);} printf("\n");return 0;} 鍐掓场娉锛氱畻娉曞垎鏋愶細濡傛灉鏈塶涓暟锛屽垯瑕佽繘琛宯-1瓒熸瘮杈冦傚湪绗1瓒熸瘮杈冧腑瑕佽繘琛宯-1娆$浉閭诲厓绱犵殑涓や袱姣旇緝锛屽湪绗琷瓒熸瘮杈冧腑瑕佽繘琛宯-j娆′袱涓ゆ瘮杈冦傛瘮杈冪殑椤哄簭浠庡墠寰鍚庯紝缁忚繃涓瓒熸瘮杈冨悗锛屽皢鏈鍊兼矇搴曪紙鎹㈠埌鏈鍚庝竴涓厓绱犱綅缃級...
  • 扩展阅读:c#多线程1000并发 ... c语言选择法排序10个数 ... c#冒泡排序 ... c#冒泡算法 ... c++冒泡法排序10个数 ... c#冒泡排序算法 ... c#冒泡排序经典代码 ... c#实现冒泡排序 ... c语言冒泡排序怎么排 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网