1.我相信很多人在刚刚接触C语言时,快速排序是一大难点,需要我们有初步的算法思维与化繁为简的基本能力。
int Find(int* arr, int left, int right)
{
int povit = arr[left];
while (left<right)
{
while (arr[right] > povit && right > left)
{
right--;
}
arr[left] = arr[right];
while (arr[left] < povit && left < right)
{
left++;
}
arr[right] = arr[left];
}
return left;
}
void QuickSort(int* arr, int left, int right)
{
if (left >= right)
{
return;
}
else
{
int povit = arr[left];
int val = Find(arr, left, right);
arr[val] = povit;
QuickSort(arr, left, val - 1);
QuickSort(arr, val + 1, right);
}
}
int main()
{
int arr[] = { 32,4,22,9,76,47,57 };
int right = sizeof(arr) / sizeof(arr[0]) - 1;
int left = 0;
int i = 0;
QuickSort(arr, left, right);
for (i = 0; i <= right; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
要有计划,一步一步地去实现。可以自己画图,加深理解。
2.校园出入系统和文件通讯录类似。这里就不作举例了。
注意:1.要注意释放自己申请的内存。(这是文件通讯录中最后一个函数的意义,那篇文章我写错了)
2.记住要关闭文件,而且要判断文件是否能打开。
3.多使用const、assert等函数,增加代码健壮性。