排序
(1)排序和查找的关系
排序是查找的前提
排序是重点
(2)常见的排序算法
①冒泡排序
②插入排序
③选择排序
④快速排序【详细说明】
程序示例:
#include <stdio.h>
void QuickSort(int *,int, int);
int FindPos(int *, int, int);
int main(void)
{
int a[6] = {2, 1, 0, 5, 4, 3};
int i;
QuickSort(a, 0, 5); //第二个参数表示第一个元素的下标,第三个参数表示最后一个元素的下标
for (i=0; i<6; ++i)
printf("%d ", a[i]);
printf("\n");
return 0;
}
void QuickSort(int * a,int low, int high)
{
int pos;
if(low < high)
{
pos = FindPos(a, low, high);
QuickSort(a, low, pos-1);
QuickSort(a, pos+1, high);
}
}
int FindPos(int * a, int low, int high)
{ int val = a[low];
while (low < high)
{
while (low < high && a[high]>=val)
--high;
a[low] = a[high];
while (low < high && a[low]<=val)
++low;
a[high] = a[low];
}//终止while循环之后low和high一定是相等的
a[low] = val;
return low; //low可以改为 high ,但不能改成val, 也不能改成 a[low]或 a[high]
}
⑤归并排序
(3)数据结构总结
①再次讨论什么是数据结构
数据结构是研究数据的存储和数据的操作的一门学问
数据的存储分为两部分:个体的存储 与 个体关系的存储
从某个角度而言,数据的存储最核心的就是个体关系的存储,个体的存储可以忽略不记
②再次讨论什么是泛型
同一种逻辑结构,无论该逻辑结构物理存储是什么样子的,我们可以对它执行相同的操作