?? 起泡排序.cpp
字號:
//* * * * * * * * * * * * * * * * * * * * * * * *
//*CHAPTER :7 (7_3) *
//*PROGRAM :起泡排序 *
//*CONTENT :起泡排序 *
//* * * * * * * * * * * * * * * * * * * * * * * *
#include <dos.h>
#include <conio.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 20 //排序表的最大容量
enum BOOL{False,True};
typedef struct //定義排序表的結構
{int elemword[MAXSIZE]; //數據元素關鍵字
int count; //表中當前元素的個數
}SqList;
void InitialSqList(SqList&); //初始化排序表
void BubbleSort(SqList &); //起泡排序
void PrintSqList(SqList); //顯示表中的所有元素
void main()
{SqList L; //聲明表L
char j='y';
textbackground(3); //設定屏幕顏色
textcolor(15);
clrscr();
//-------------------------程序說明-------------------------------
printf("本程序將演示起泡排序的操作。\n");
//----------------------------------------------------------------
while(j!='n'&&j!='N')
{InitialSqList(L); //待排序列初始化
BubbleSort(L); //起泡排序
PrintSqList(L); //顯示排序結果
printf("繼續進行下一次排序嗎?(Y/N)");
scanf(" %c",&j);
}
printf("程序運行結束!\n按任意鍵關閉窗口!\n");
getchar();getchar();
}
void InitialSqList(SqList &L)
{//表初始化
int i;
printf("請輸入待排序的記錄的個數:");
scanf("%d",&L.count);
printf("請輸入待排序的記錄的關鍵字(整型數):\n");
for(i=0;i<L.count;i++)
scanf("%d",&L.elemword[i]);
}
void BubbleSort(SqList &L)
{//對順序表L做起泡排序。
int i,j,t;
BOOL change;
for(i=L.count-1,change=True;i>0&&change;--i)
{change=False;
for(j=0;j<i;j++)
if(L.elemword[j]>L.elemword[j+1])
{t=L.elemword[j];
L.elemword[j]=L.elemword[j+1];
L.elemword[j+1]=t;
change=True;
}
}
}
void PrintSqList(SqList L)
{//顯示表中所有元素
int i;
printf("已排好序的序列如下:\n");
for(i=0;i<L.count;i++)
printf("%4d",L.elemword[i]);
printf("\n");
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -