常用的数据结构包括: 1. 数组(Array) 2. 链表(Linked List) 3. 栈(Stack) 4. 队列(Queue) 5. 树(Tree) 6. 图(Graph) 7. 哈希表(Hash Table) 8. 堆(Heap) 常用的算法包括: 1. 排序算法(如快速排序、归并排序、插入排序、冒泡排序等) 2. 搜索算法(如二分查找、深度优先搜索、广度优先搜索等) 3. 动态规划(Dynamic Programming) 4. 贪心算法(Greedy Algorithm) 5. 回溯算法(Backtracking) 6. 分治算法(Divide and Conquer) 7. 图算法(如最短路径算法、最小生成树算法等) 8. 字符串匹配算法(如KMP算法、Boyer-Moore算法等)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j,t,a[6];
printf("input 6 numbers:\n");
for(i=0;i<6;i++)
scanf("%d",&a[i]);
// 每一次冒泡将整个列表中最大/最小的数放到该列表最后一个位置
// 第一重循环次数:n-1
// 第二重循环,每次都从第1个数开始,与它后面的数比较
for(i=0;i<6-1;i++)
for(j=0;j<6-1-i;j++)
if(a[j]<a[j+1])
{
t = a[j];
a[j]=a[j+1];
a[j+1] = t;
}
printf("-------------------\n");
for(i=0;i<6;i++)
printf("%d\n",a[i]);
return 0;
}
不习惯索引从0开始计算,调整一下下标也可以
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j,t,a[6];
printf("input 6 numbers:\n");
for(i=0;i<6;i++)
scanf("%d",&a[i]);
for(i=1;i<6;i++)
for(j=1;j<6-i;j++)
if(a[j-1]<a[j])
{
t = a[j-1];
a[j-1]=a[j];
a[j] = t;
}
printf("-------------------\n");
for(i=0;i<6;i++)
printf("%d\n",a[i]);
return 0;
}