关于直接插入排序请参看:
http://128kj.iteye.com/blog/1662280
POJ2388题意:
【输入】第一行为n,接下来n行分别为一个数;
【输出】这n个数排序后的中位数
样例:
Sample Input
5
2
4
1
3
5
Sample Output
3
分析:好象用多种排序法都可以AC,前面用了堆排序,这里再用直接插入排序,主要是复习一下代码。比起堆排序,代码短多了。
排一次序后输出中位数,但效率太低了。这里先不管了。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int n=in.nextInt();
int[] array =new int[n];
for(int i=0;i<n;i++)
array[i]=in.nextInt();
sort(array);
System.out.println(array[n / 2 ]);
//for(int el : array) {
// System.out.print(el + " ");
//}
}
static void sort(int[] array) {
int temp;
int i,j;
int length = array.length;
for(i = 1; i < length; i++) {
temp = array[i];
for(j = i-1; j >=0; j--) {
if(temp < array[j]) {
array[j+1] = array[j];
} else {
break;
}
}
array[j+1] = temp;
}
}
}
源码下载:
分享到:
相关推荐
2. **排序算法**:快速排序、归并排序、冒泡排序、插入排序、选择排序、堆排序等在poj题目中频繁出现。Java的Arrays类提供了排序方法,可以直接使用,但在解决特定问题时,可能需要自定义排序算法。 3. **搜索与...
1. **排序算法**:如快速排序、归并排序、冒泡排序、插入排序、选择排序等,它们在解决数据处理和查找问题时扮演重要角色。 2. **搜索算法**:包括深度优先搜索(DFS)和广度优先搜索(BFS),在解决迷宫问题、树...
3. **算法**:排序(冒泡、插入、选择、归并、快速等)、查找(线性、二分、哈希)、动态规划、贪心、回溯、分治等经典算法。 4. **数学知识**:组合数学、图论、概率论、数论等,很多题目需要结合数学知识来设计...
这样的分类文件对于想要深入研究某一特定题型的程序员来说极其有用,例如,如果想要强化排序算法或者图论问题的解决能力,可以直接查看对应分类下的题目列表,有针对性地进行练习。 对于编程初学者来说,了解并掌握...
POJ是编程爱好者和参赛者们常用的在线判题系统,主要支持C、C++、Java等编程语言,用于练习和提交解决问题的算法代码。 描述中的“POJ1000-1299中的80题AC代码”进一步强调了这80个题目编号的范围。在POJ中,题目...
1. **基础题目**:这部分包括了如poj1753、poj2965等基础练习题。 - **策略建议**:这些题目通常用于帮助初学者熟悉编程环境和基本数据结构。例如,通过解决poj1753这类题目,可以加强对数组操作的理解;而poj2965...
在“经典算法(C语言)”文档中,可能会介绍排序算法(如冒泡排序、选择排序、插入排序、快速排序、归并排序等)、查找算法(如线性查找、二分查找等)、图和树的遍历算法(如深度优先搜索DFS和广度优先搜索BFS),...
排序算法是ACM竞赛中的常考点,包括直接插入排序、快速排序、选择排序(简单选择、树形选择和堆排序)、归并排序等。 训练计划中还给出了具体的时间安排和题目列表,如初级阶段的第1周至第4周,分别涉及基本算法、...
9. **算法和数据结构**:可能涉及到排序算法(如冒泡、选择、插入、快速、归并等)、查找算法(线性查找、二分查找等),以及简单的数据结构(如栈、队列、链表)。 10. **编程规范**:良好的编程风格,包括代码的...