C语言数据结构“排序”问题
#include
#include
/**
* 冒泡排序
* @param inta 正数数组
* @param iLen 数组中的数据数
* @param iMode 排序模式: 0 升序 1 降序
*/
void sort(int inta[], int iLen, int iMode) {
int i, j; //循环变量
int iTemp; //临时变量
int iSwap; //交换次数
if ((iLen inta[j]) {
if (iMode == 0) {
//升序排序需要交换,否则不需要
iSwap++; //计算交换次数
inta[i] = inta[j]...全部
#include
#include
/**
* 冒泡排序
* @param inta 正数数组
* @param iLen 数组中的数据数
* @param iMode 排序模式: 0 升序 1 降序
*/
void sort(int inta[], int iLen, int iMode) {
int i, j; //循环变量
int iTemp; //临时变量
int iSwap; //交换次数
if ((iLen inta[j]) {
if (iMode == 0) {
//升序排序需要交换,否则不需要
iSwap++; //计算交换次数
inta[i] = inta[j]; //交换数据
inta[j] = iTemp;
iTemp = inta[i];
}
} else {
if (iMode == 1) {
//升序排序不需要交换,否则需要
iSwap++; //计算交换次数
inta[i] = inta[j]; //交换数据
inta[j] = iTemp;
iTemp = inta[i];
}
}
}
}
printf("排序趟数:%d\n", iLen); //冒泡排序趟数不会少
printf("交换次数:%d\n", iSwap);
}
/*
*
*/
int main(int argc, char** argv) {
int i;
int iLen;
int inta[] = {
12, 13, -18, 100, 98,
-500, 800, -800, 0, -324,
123, 321, 456, 543, -123,
900, -90, -10000, 32222, 1234567
};
iLen = sizeof (inta) / sizeof (inta[0]); //动态计算数据数量
sort(inta, iLen, 0);
printf("排序结果:");
for (i = 0; i < iLen; i++) {
printf("\t%d", inta[i]);
}
return (EXIT_SUCCESS);
}
这些都是数据结构的基本知识,建议你还是好好学习,否则你将来影响工作。
收起