C语言 分别用冒泡,选择,插入对n个数进行排序。
冒泡排序
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;
}
简单选择排序
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
/****************************************
**选择排序法对十个整数进行排序 ***
****************************************/
//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:
");
for(int i=0;i<10;i++)
scanf("%d",&a[i]);
sort(a,10);
for(i=0;i<10;i++)
printf("%d",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;
}
}
}
//选择排序
#include<stdio.h>
void main()
{int i,n,j,k,temp,a[100];
printf("Input n:
");
scanf("%d",&n);
printf("Input the arry:
");
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[k]>a[j]) k=j; /*是k总是指向最小元素*/
if(i!=k) /*当k!=i是才交换,否则a[i]即为最小*/
{ temp=a[i]; a[i]=a[k]; a[k]=temp;}
}
printf("After the arrangement:
");
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("
");
}
//冒泡排序
#include<stdio.h>
void main()
{int n,i,j,temp,a[100];
printf("Input n:
");
scanf("%d",&n);
printf("Input the arry:
");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(j=n-1;j>0;j--) //依次判断当前最大值,冒泡地将其放在最后的位置
for(i=0;i<j;i++)
if(a[i]>a[i+1]) { temp=a[i]; a[i]=a[i+1]; a[i+1]=temp;}
printf("After the arrangement:
");
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("
");
}
#include<stdio.h>
#defineSIZE8
voidbubble_sort(inta[],intn);
voidbubble_sort(inta[],intn)//n为数组a的元素个数
{
inti,j,temp;
for(j=0;j<n-1;j++)
for(i=0;i<n-1-j;i++)
{
if(a[i]>a[i+1])//数组元素大小按升序排列
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
}
intmain()
{
intnumber[SIZE]={95,45,15,78,84,51,24,12};
inti;
bubble_sort(number,SIZE);
for(i=0;i<SIZE;i++)
{
printf("%d",number[i]);
}
printf("\n");
}冒泡
#include<stdio.h>
#include<stdlib.h>
void swap(int*a,int*b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
void select_sort(int A[],intn)
{
register int i,j,min,m;
for(i=0;i<n-1;i++){
min=i;//查找最小值
for(j=i+1;j<n;j++)
{
if(A[min]>A[j])
{min=j;}
}
if(min!=i)
{
swap(&A[min],&A[i]);
printf("第%d趟排序结果为:\n",i+1);
for(m=0;m<n;m++)
{
if(m>0){
printf("");
}
printf("%d",A[m]);
}
printf("\n");
}
}
}
int main(void)
{
int n;
while(scanf("%d",&n)!=EOF)
{
int i;
int*A=(int*)malloc(sizeof(int)*n);
for(i=0;i<n;i++)
{
scanf("%d",&A[i]);
}
select_sort(A,n);
printf("最终排序结果为:\n");
for(i=0;i<n;i++)
{
if(i>0){
printf("");
}
printf("%d",A[i]);
}
printf("\n");
}
return 0;
}选择
voidinsert_sort(int*array,unsignedintn)
{
inti,j;
inttemp;
for(i=1;i<n;i++)
{
temp=*(array+i);
for(j=i;j>0&&*(array+j-1)>temp;j--)
{
*(array+j)=*(array+j-1);
}
*(array+j)=temp;
}
}插入
茌狄力美: int a[100],i,j,k,temp;选择法: for(i=0;i<N;i++) { k=i; for(j=k+1;j<N;j++) if(a[k]<a[j]) k=j; temp=a[i];a[i]=a[k];a[k]=temp; }冒泡法: for(i=0;i<N;i++) for(j=0;j<N-i;j++) if(a[j]>a[j+1]) { temp=a[j];a[j]=a[j+1];a[j+1]=temp; }
达日县19589208164: c语言题目随机产生n个数,然后对这些数进行从大到小的排序,分别使用冒泡排序选择排序和直接插入排序. - ?
茌狄力美: #include void sort(int a[],int n) { int i; int j; for(i=1;ia[j+1]) //从小到达,前面的比后面的大,则互换. { int temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; } } } } int main() { int a[10]={1,3,5,7,9,2,4,6,8,10}; sort(a,10); int i; for(i=0;i<10;i++) { printf("%d ",a[i]); } getchar(); return 0; }
达日县19589208164: 编程序、分别用气泡法和选择法,对N个数升序排列后输出6,38,45,8,688,39,17 - ?
茌狄力美: 不知道你是要讲解还是要代码,就把代码发上来吧.就用LZ你自己的原始数据:void main(void) { int arry[7]={6,38,45,8,688,39,17},x,temp,i,j; printf("原 始 数 据 :"); for(i=0;i<7;i++) printf("%4d",arry[i]); printf("\n"); //选择排序法: for(i=...
达日县19589208164: C语言 谢谢. 排序问题:随机产生1—M之间的N个整数,分别采用插入排序、选择排序、冒泡排序和堆 - ?
茌狄力美: #include "stdio.h" void main() {int a[9]={1,3,5,7,9,10,12,14};int b,i,j;scanf("%d",&b); for(i=0;i<8;i++){if(a[i]>=b){ /*找到插入位置*/for(j=8;j>i;j--) /*后面元素均后移一位*/a[j] = a[j-1];a[i] = b; /*插入*/break;}}if(i==8) /*若该数大于所有数*/a[8] = b; for(i=0;i<9;i++)printf("%d ", a[i]);printf("\n");}
达日县19589208164: 用选择法和起泡法对N=10个整数由大到小排序.10个整数由键盘输入,排序后从屏幕输出结果 用c语言?
茌狄力美:#include <stdio.h> #include <math.h> main() { int a[10],b,c,t; printf("请输入10个数值:\n"); for(b=0;b<=9;b++)scanf("%d",&a[b]); for(b=0;b<=9;b++) for(c=0;c<=9-b;c++) if(a[c]>a[c+1]) { t=a[c]; a[c]=a[c+1]; a[c+1]=t; } for(b=9;b>=0;b--)printf("%d ",a[b]); getch(); }
达日县19589208164: c语言的一题目:分别用冒泡法和选择法对10个数排序!!谢谢 - ?
茌狄力美: 冒泡法:#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...
达日县19589208164: C语言用冒泡法和选择法对10个数进行排序 - ?
茌狄力美: 冒泡法:#define N 10#include maopao(int a[N]) { int i,j,t; for(j=0;j for(i=0;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 printf("%d ",a[i]); printf("\n"); } void main() { int i,a[N]; printf("请输入10个数:\n...
达日县19589208164: 用C语言编写程序实现:利用冒泡法将数组a中的n个元素按升序排列,现将一个新数x插入到数组a - ?
茌狄力美: 冒泡法排序: void sort(int *a, int n) {int k, l;for(int i = 0; i < n; i++){k = i;for(int j = i; j < n; j++){if(a[j] > a[k]){k = j;}}l = a[i];a[i] = a[k];a[k] = l;} }void insert(int *a, int n, int num) {int k;for(int i = 0; i < n; i++){if(num > a[i]){k = i;break;}...
达日县19589208164: C语言:输入N个字符串,以空字符串结束,并对其进行选择排序与冒泡排序方法排序. - ?
茌狄力美: // 冒泡排序 int BubbleSort(int a[], int len) {int i, j, temp, CompareNum=0; for(i=0; i for(j=0; j { if(a[j] > a[j+1]) // 将较大的值放到后面 {temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; } CompareNum++; // 比较次数加1 } return CompareNum; }// 选择排序 void ...
达日县19589208164: 用c语言 输入一个6个元素的数组,请分别用冒泡法和选择法对数组进行升序排列(从小到大) - ?
茌狄力美: 1、新建一个163.php.2、输入php网页的结构(<?php?>).3、声明PHP与浏览器交互的文件类型和编码.4、使用 array() 函数定义一个$numbers数组.5、使用 sort() 函数对数组 $numbers 中的元素进行排.6、使用 print_r() 函数,输出排序后的数组.7、运行网页,在浏览器中输出排序后的数组.