原始碼
#include<stdio.h>
#define d_length 6 //定義陣列長度
//函式宣告
void bubb_rank();
void choose_course_rank();
void choose_result_rank();
int main()
{
bubb_rank();
choose_course_rank();
choose_result_rank();
return 0;
}
//冒泡排序
void bubb_rank()
{
int data[d_length];
int i,j,temp,traver;
printf("請輸入你要排序的數字,以空格隔開(冒泡)\n");
for(i=0;i<d_length;i++)
{
scanf("%d",&data[i]);
}
// 8 9 6 3 7 2
// 8 6 3 7 2 9
// 6 3 7 2 8 9
// 3 6 2 7 8 9
// 3 2 6 7 8 9
// 2 3 6 7 8 9
//總共排序d_length-1次,也就是5次
for(i=0;i<d_length-1;i++)
{
//里面比較次數,第一次排序比較5次,第二次比較4次
for(j=0;j<d_length-1-i;j++)
{
if(data[j]>data[j+1])
{
temp=data[j];
data[j]=data[j+1];
data[j+1]=temp;
}
}
//遍歷,看每一次排序的現象
for(traver=0;traver<d_length;traver++)
printf("%-2d",data[traver]);
printf("\n");
}
}
//比較程序中,遇到小的就交換的選擇排序
void choose_course_rank()
{
int data[d_length];
int i,j,temp,traver;
printf("請輸入你要排序的數字,以空格隔開(程序交換的選擇)\n");
for(i=0;i<d_length;i++)
{
scanf("%d",&data[i]);
}
// 8 9 6 3 7 2
// 2 9 8 6 7 3
// 2 3 9 8 7 6
// 2 3 6 9 8 7
// 2 3 6 7 9 8
// 2 3 6 7 8 9
//第一次是用第一個元素來與后面的比較,也就是8
for(i=0;i<d_length-1;i++)
{
//內部比較次數
for(j=i+1;j<d_length;j++)
{
if(data[i]>data[j])
{
temp=data[i];
data[i]=data[j];
data[j]=temp;
}
}
//遍歷,看每一次排序的現象
for(traver=0;traver<d_length;traver++)
printf("%-2d",data[traver]);
printf("\n");
}
}
//比較程序中,遇到小的不交換,記住下標,最后交換的選擇排序
void choose_result_rank()
{
int data[d_length];
int i,j,temp,traver;
int k;
printf("請輸入你要排序的數字,以空格隔開(最后交換的選擇)\n");
for(i=0;i<d_length;i++)
{
scanf("%d",&data[i]);
}
// 8 9 6 3 7 2
// 2 9 6 3 7 8
// 2 3 6 9 7 8
// 2 3 6 9 7 8
// 2 3 6 7 9 8
// 2 3 6 7 8 9
//第一次是用第一個元素來與后面的比較,也就是8
for(i=0;i<d_length-1;i++)
{
k=i;
//內部比較次數
for(j=i+1;j<d_length;j++)
{
if(data[k]>data[j])
{
k=j;
}
}
temp=data[i];
data[i]=data[k];
data[k]=temp;
//遍歷,看每一次排序的現象
for(traver=0;traver<d_length;traver++)
printf("%-2d",data[traver]);
printf("\n");
}
}
現象

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/258108.html
標籤:其他
下一篇:verilog qpsk調制解調
