java中快速排序算法 2、.冒泡排序:依次比较相邻的两个数,将大数放在前面,小数放在后面。第一感结束,在最后的数必是所有数中的最小数。重复以上过程,直至最终完成排序。由于在排序过程中总是大数往前放,小数往后放,相当于气泡往上升,所以称作冒泡排序。请用JAVA语言编写个完成冒泡排序算法的程序?

[更新]
·
·
分类:互联网
4775 阅读

java中快速排序算法

2、.冒泡排序:依次比较相邻的两个数,将大数放在前面,小数放在后面。第一感结束,在最后的数必是所有数中的最小数。重复以上过程,直至最终完成排序。由于在排序过程中总是大数往前放,小数往后放,相当于气泡往上升,所以称作冒泡排序。请用JAVA语言编写个完成冒泡排序算法的程序?

2、.冒泡排序:依次比较相邻的两个数,将大数放在前面,小数放在后面。第一感结束,在最后的数必是所有数中的最小数。重复以上过程,直至最终完成排序。由于在排序过程中总是大数往前放,小数往后放,相当于气泡往上升,所以称作冒泡排序。请用JAVA语言编写个完成冒泡排序算法的程序?

//待排序的数组怎么赋值,随便写写,重点还是排序算法
int arr[]{56,35,127,-69,106,-15,0,45};
int temp0;
//用双层循环实现排序
//第一层循环是要比较的轮数
for(int i0;i<arr.length;i )
{
//第二层循环,是要比较的个数,并且每一轮比较的个数都会比上一轮少一个。
for(int j0;j<arr.length-i-1;j )
{
//如果相邻数,前面的那个更小,位置交换
if(arr[j]<arr[j-1])
{
temparr[j];
arr[j]arr[j-1];
arr[j-1]temp;
}
}
}

想用Java学习数据结构与算法,我应该掌握Java到哪种程度?

首先强调一点,数据结构和算法其实和语言没有太大关系,编程语言只是我们实现算法的工具。这里我为你整理了一份常见的你可以尝试去实现的算法清单:
链表类题目:
1. O(1)时间删除链表节点
2. 链表反转
3. 旋转单链表
4. 查到倒数第K个链表节点
5. 求链表的中间节点
6. 划分链表使得所有小于x的节点排在大于等于x的节点之前
7. 合并有序链表
8. 删除链表中的重复节点
9. 判断单链表是否有环(快慢指针)
10. 判断两个无环链表是否相交
排序算法:
1. 快速排序
2. 插入排序算法
3.选择排序
4.堆排序
5.希尔排序
6.基数排序
7.冒泡排序
8.归并排序
9.二叉树排序
10.计数排序
11.桶排序
二叉树:
1. 计算二叉树节点个数
2. 求树的最大层数(深度)
3. 最小深度
4. 二叉树的前序遍历(递归算法)
5. 二叉树非递归前序遍历
6. 二叉树中序遍历(递归)
7. 二叉树中序遍历非递归
8. 后续遍历
9. 非递归后序遍历二叉树
10. 自下而上分层遍历
11. 从上而下层次打印
12. 求第层节点个数
13. 求第层的叶子节点个数
14. 两颗二叉树是否结构相同
15. 判断是否是平衡二叉树
16. 判断是否是对称二叉树
17. 求二叉树的最低公共祖先
18. 求二叉树的长度或者直径(疑问)·
19. 路径总和II
20. 求根到叶子节点数字之和
当这些基础算法都掌握了,这个时候再去分析JDK里面用到的各种数据结构或者算法,比如说Collections类的sort是采用的什么排序方式(不止一种额,分情况有好几种);然后再尝试去分心JDK里面各种数据结构的使用场景,比如说红黑树、队列、堆栈、跳跃表之类的;最后,再去思考或者总结各种算法与数据结构最适用的场景。如果这些你都很清楚了,那么我相信你的是算法与数据结构肯定已经学的很好了。