要把这3个算法写到一个程序中,最重要的是要能运行的!随便弄的还运行不了的就不要回答。。。
å¾æ
å¥ç®ï¼
#include "stdio.h"
void selectSort(int a[],int n){//éæ©æåº
int change,i,j;
int mini=a[0];
int minipos=0;
for(i=0;i<n;i++){
mini=a[i];
minipos=i;
for(j=i;j<n;j++){
if(a[j]<mini){
mini=a[j];
minipos=j;
}
}
change=a[minipos];
a[minipos]=a[i];
a[i]=change;
}
}
void sub(int a[],int n) //è¿æ¯ä¸ä¸ªä»å°å°å¤§æå ¥æåºå¾å½æ°
{
int i,j,t; //t为临æ¶åé
for(i=0;i<n;i++) //ä»ç¬¬ä¸ä¸ªå ç´ å¼å§å¯¹n个å ç´ ä¸æ¬¡è¿è¡æå ¥æåº
{ //åå®å½ååå¤å¯¹ç¬¬i个å ç´ è¿è¡æå ¥æåºï¼åé¢å¾i-1个å ç´ å·²ç»
for(t=a[i],j=i-1;j>=0&&t<a[j];j--) //æä»å°å°å¤§æ好åºäºãå°a[i]æååºæ¥æ¾å¨ä¸´æ¶åétä¸ï¼å ¶ä»a[i-1]å¼å§ä¸åé¢å¾å ç´ ä¾æ¬¡è¿è¡æ¯è¾ï¼è¥å°äºï¼åå°è¯¥å ç´ å移ä¸ä½ï¼ç´å°æ¾å°ç¬¬ä¸ä¸ªt>a[j]ï¼åæ¢æ¯è¾ï¼å°tæ¾å¨è¯¥å ç´ åé¢ï¼å³æ¾å¨a[j+1]ä¸
{
a[j+1]=a[j];
}
a[j+1]=t;
}
}
void maopao(int a[],int n)
{
int i,j,t;
for(i=1;i<n;i++) //å泡æ¯ç¬¬i次循ç¯å¨æ°ç»æ«å°¾åæ°ç¬¬i个ä½ç½®ä¾æ¬¡äº§ç第i大å¾æ°å¼
for(j=0;j<n-i;j++)
{
t=a[j+1];
if(a[j]>a[j+1]) //大å¼å移
{
a[j+1]=a[j];
a[j]=t;
}
}
}void print(int a[],int n){//è¾åºæ°ç»çææå ç´
int i;
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
}void main()
{
int i,n,c[100];
printf("请è¾å ¥æ°ç»å ç´ ç个æ°ï¼");
scanf("%d",&n);
printf("请ä¾æ¬¡è¾å ¥åå ç´ ï¼\n");
for(i=0;i<n;i++)
scanf("%d",&c[i]);
sub(c,n);
printf("ç¨æå ¥æ³å¯¹è¿äºå ç´ ä»å¤§å°å°è¿è¡æåºï¼\n");
print(c,n);
maopao(c,n);
printf("ç¨å泡æ³å¯¹è¿äºå ç´ ä»å¤§å°å°è¿è¡æåºï¼\n");
print(c,n);
selectSort(c,n);
printf("ç¨éæ©æ³å¯¹è¿äºå ç´ ä»å¤§å°å°è¿è¡æåºï¼\n");
print(c,n);
}
#include "stdio.h"
void selectSort(int a[],int n){//éæ©æåº
int change,i,j;
int mini=a[0];
int minipos=0;
for(i=0;i<n;i++){
mini=a[i];
minipos=i;
for(j=i;j<n;j++){
if(a[j]<mini){
mini=a[j];
minipos=j;
}
}
change=a[minipos];
a[minipos]=a[i];
a[i]=change;
}
}
void sub(int a[],int n) //è¿æ¯ä¸ä¸ªä»å°å°å¤§æå ¥æåºå¾å½æ°
{
int i,j,t; //t为临æ¶åé
for(i=0;i<n;i++) //ä»ç¬¬ä¸ä¸ªå ç´ å¼å§å¯¹n个å ç´ ä¸æ¬¡è¿è¡æå ¥æåº
{ //åå®å½ååå¤å¯¹ç¬¬i个å ç´ è¿è¡æå ¥æåºï¼åé¢å¾i-1个å ç´ å·²ç»
for(t=a[i],j=i-1;j>=0&&t<a[j];j--) //æä»å°å°å¤§æ好åºäºãå°a[i]æååºæ¥æ¾å¨ä¸´æ¶åétä¸ï¼å ¶ä»a[i-1]å¼å§ä¸åé¢å¾å ç´ ä¾æ¬¡è¿è¡æ¯è¾ï¼è¥å°äºï¼åå°è¯¥å ç´ å移ä¸ä½ï¼ç´å°æ¾å°ç¬¬ä¸ä¸ªt>a[j]ï¼åæ¢æ¯è¾ï¼å°tæ¾å¨è¯¥å ç´ åé¢ï¼å³æ¾å¨a[j+1]ä¸
{
a[j+1]=a[j];
}
a[j+1]=t;
}
}
void maopao(int a[],int n)
{
int i,j,t;
for(i=1;i<n;i++) //å泡æ¯ç¬¬i次循ç¯å¨æ°ç»æ«å°¾åæ°ç¬¬i个ä½ç½®ä¾æ¬¡äº§ç第i大å¾æ°å¼
for(j=0;j<n-i;j++)
{
t=a[j+1];
if(a[j]>a[j+1]) //大å¼å移
{
a[j+1]=a[j];
a[j]=t;
}
}
}void print(int a[],int n){//è¾åºæ°ç»çææå ç´
int i;
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
}void main()
{
int i,n,c[100];
printf("请è¾å ¥æ°ç»å ç´ ç个æ°ï¼");
scanf("%d",&n);
printf("请ä¾æ¬¡è¾å ¥åå ç´ ï¼\n");
for(i=0;i<n;i++)
scanf("%d",&c[i]);
sub(c,n);
printf("ç¨æå ¥æ³å¯¹è¿äºå ç´ ä»å¤§å°å°è¿è¡æåºï¼\n");
print(c,n);
maopao(c,n);
printf("ç¨å泡æ³å¯¹è¿äºå ç´ ä»å¤§å°å°è¿è¡æåºï¼\n");
print(c,n);
selectSort(c,n);
printf("ç¨éæ©æ³å¯¹è¿äºå ç´ ä»å¤§å°å°è¿è¡æåºï¼\n");
print(c,n);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2013-12-15
#include <stdio.h>// 冒泡排序
/////////////////////////////////////////////////////////////////////
void BubbleSort(int* pData,int Count)
{
int iTemp;
for(int i=1;i<Count;i++)
{
for(int j=Count-1;j>=i;j--)
{
if(pData[j]<pData[j-1])
{
iTemp = pData[j-1];
pData[j-1] = pData[j];
pData[j] = iTemp;
}
}
}
}// 插入排序
/////////////////////////////////////////////////////////////////////
void InsertSort(int* pData,int Count)
{
int iTemp;
int iPos;
for(int i=1;i<Count;i++)
{
iTemp = pData[i];
iPos = i-1;
while((iPos>=0) && (iTemp<pData[iPos]))
{
pData[iPos+1] = pData[iPos];
iPos--;
}
pData[iPos+1] = iTemp;
}
}// 选择排序
/////////////////////////////////////////////////////////////////////
void SelectSort(int* pData,int Count)
{
int iTemp;
int iPos;
for(int i=0;i<Count-1;i++)
{
iTemp = pData[i];
iPos = i;
for(int j=i+1;j<Count;j++)
{
if(pData[j]<iTemp)
{
iTemp = pData[j];
iPos = j;
}
}
pData[iPos] = pData[i];
pData[i] = iTemp;
}
}// 主函数
/////////////////////////////////////////////////////////////////////
int main(int argc, char* argv[])
{
int data1[] = {10,9,8,7,6,5,4};
printf("【冒泡排序】\n");
printf(" 排序前:");
for (int i=0;i<7;i++)
printf("%d\t",data1[i]);
printf("\n");
BubbleSort(data1,7);
printf(" 排序后:");
for (i=0;i<7;i++)
printf("%d\t",data1[i]);
printf("\n\n");
int data2[] = {11,0,8,2,1,4,5};
printf("【插入排序】\n");
printf(" 排序前:");
for (i=0;i<7;i++)
printf("%d\t",data2[i]);
printf("\n");
InsertSort(data2,7);
printf(" 排序后:");
for (i=0;i<7;i++)
printf("%d\t",data2[i]);
printf("\n\n");
int data3[] = {21,20,11,8,3,4,1};
printf("【选择排序】\n");
printf(" 排序前:");
for (i=0;i<7;i++)
printf("%d\t",data3[i]);
printf("\n");
SelectSort(data3,7);
printf(" 排序后:");
for (i=0;i<7;i++)
printf("%d\t",data3[i]);
printf("\n\n");
getchar();
return 0;
}
/////////////////////////////////////////////////////////////////////
void BubbleSort(int* pData,int Count)
{
int iTemp;
for(int i=1;i<Count;i++)
{
for(int j=Count-1;j>=i;j--)
{
if(pData[j]<pData[j-1])
{
iTemp = pData[j-1];
pData[j-1] = pData[j];
pData[j] = iTemp;
}
}
}
}// 插入排序
/////////////////////////////////////////////////////////////////////
void InsertSort(int* pData,int Count)
{
int iTemp;
int iPos;
for(int i=1;i<Count;i++)
{
iTemp = pData[i];
iPos = i-1;
while((iPos>=0) && (iTemp<pData[iPos]))
{
pData[iPos+1] = pData[iPos];
iPos--;
}
pData[iPos+1] = iTemp;
}
}// 选择排序
/////////////////////////////////////////////////////////////////////
void SelectSort(int* pData,int Count)
{
int iTemp;
int iPos;
for(int i=0;i<Count-1;i++)
{
iTemp = pData[i];
iPos = i;
for(int j=i+1;j<Count;j++)
{
if(pData[j]<iTemp)
{
iTemp = pData[j];
iPos = j;
}
}
pData[iPos] = pData[i];
pData[i] = iTemp;
}
}// 主函数
/////////////////////////////////////////////////////////////////////
int main(int argc, char* argv[])
{
int data1[] = {10,9,8,7,6,5,4};
printf("【冒泡排序】\n");
printf(" 排序前:");
for (int i=0;i<7;i++)
printf("%d\t",data1[i]);
printf("\n");
BubbleSort(data1,7);
printf(" 排序后:");
for (i=0;i<7;i++)
printf("%d\t",data1[i]);
printf("\n\n");
int data2[] = {11,0,8,2,1,4,5};
printf("【插入排序】\n");
printf(" 排序前:");
for (i=0;i<7;i++)
printf("%d\t",data2[i]);
printf("\n");
InsertSort(data2,7);
printf(" 排序后:");
for (i=0;i<7;i++)
printf("%d\t",data2[i]);
printf("\n\n");
int data3[] = {21,20,11,8,3,4,1};
printf("【选择排序】\n");
printf(" 排序前:");
for (i=0;i<7;i++)
printf("%d\t",data3[i]);
printf("\n");
SelectSort(data3,7);
printf(" 排序后:");
for (i=0;i<7;i++)
printf("%d\t",data3[i]);
printf("\n\n");
getchar();
return 0;
}