#include <stdio.h> //簡單選擇排序 void SelectSort(int r[ ], int n) { int i; int j; int index; int temp; for (i=0; i<n-1; i++) //對n個記錄進行n-1趟簡單選擇排序 { index=i; for (j=i+1; j<n; j++) //在無序區中選取最小記錄 if (r[j]<r[index]) index=j; if (index!=i) { temp=r[i]; r[i]=r[index]; r[index]=temp; } } } void main() { int num[20]; int a,b,c,t; for (c=0;c<6;c++) scanf("%d",&num[c]); SelectSort(num,6);//調用用SelectSort(num,6)即可 for(c=0;c<6;c++) printf("%d\t",num[c]); printf("\n"); }
2016-10-24
//冒泡法和選擇法都可以
//冒泡排序法如下:
#include<stdio.h>
#define N 6
void main()
{
int i,a[N],t=0,j=0;
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=0;i<N-1;i++)
for(j=0;j<N-1-i;j++)
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
for(i=0;i<N;i++)
printf("%5d",a[i]);
printf("\n");
}
//選擇排序法如下:
#include <stdio.h>
//簡單選擇排序
void SelectSort(int r[ ], int n)
{
int i;
int j;
int index;
int temp;
for (i=0; i<n-1; i++) //對n個記錄進行n-1趟簡單選擇排序
{
index=i;
for (j=i+1; j<n; j++) //在無序區中選取最小記錄
if (r[j]<r[index])
index=j;
if (index!=i)
{
temp=r[i];
r[i]=r[index];
r[index]=temp;
}
}
}
void main()
{
int num[20];
int a,b,c,t;
for (c=0;c<6;c++)
scanf("%d",&num[c]);
SelectSort(num,6);//調用用SelectSort(num,6)即可
for(c=0;c<6;c++)
printf("%d\t",num[c]);
printf("\n");
}
2016-10-24
//冒泡法和選擇法都可以
//冒泡排序法如下:
#include<stdio.h>
#define N 10
void main()
{
int i,a[N],t=0,j=0;
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=0;i<N-1;i++)
for(j=0;j<N-1-i;j++)
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
for(i=0;i<N;i++)
printf("%5d",a[i]);
printf("\n");
}
2016-05-20
#include<stdio.h>
int main()
{
? ? int a[]={39,35,36,41,45,67};
? ? int i,j;
? ? for (i=4;i>=0;i--)
? ? {
? ? ? ? for(j=0;j<=i;j++)
? ? ? ? {
? ? ? ? ? ? if(a[j]>a[j+1])
? ? ? ? ? ? {
? ? ? ? ? ? ? ? int b;
? ? ? ? ? ? ? ? b=a[j];
? ? ? ? ? ? a[j]=a[j+1];
? ? ? ? ? ? ? ? a[j+1]=b;
? ? ? ? ? ? }
? ? ? ? }
? ? }
printf("從小到大為:");?
for (i=0;i<6;i++)
{
? ? printf("%d",a[i]);
? ? if(i<5)
? ? printf(" ,");
}
return 0;
}
2016-05-20
#include<stdio.h>
int main()
{
? ? int a[]={39,35,36,41,45,67};
? ? int i,j;
? ? for (i=4;i>=0;i--)
? ? {
? ? ? ? for(j=0;j<=i;j++)
? ? ? ? {
? ? ? ? ? ? if(a[j]<a[j+1])
? ? ? ? ? ? {
? ? ? ? ? ? ? ? int b;
? ? ? ? ? ? ? ? b=a[j];
? ? ? ? ? ? a[j]=a[j+1];
? ? ? ? ? ? ? ? a[j+1]=b;
? ? ? ? ? ? }
? ? ? ? }
? ? }
printf("從大到小為:");?
for (i=0;i<6;i++)
{
? ? printf("%d",a[i]);
? ? if(i<5)
? ? printf(" ,");
}
return 0;
}
2016-04-14
冒泡法;