黑马程序员技术交流社区
标题:
冒泡排序,选择排序---面试必考!
[打印本页]
作者:
continuer
时间:
2015-12-21 23:28
标题:
冒泡排序,选择排序---面试必考!
public class Dem {
public static void main(String[] args) {
int[] arr = {6,5,4,3,2,1};
prinArray(arr); //排序前
bubbleSort(arr); // 冒泡排序
prinArray(arr); //排序后
System.out.println("----------------"); //换行
prinArray(arr); //排序前
selectSort(arr); //选择排序
prinArray(arr); //排序后
}
//冒泡排序
public static void bubbleSort(int[] arr){
for (int i = 0; i < arr.length-1; i++) {
for (int j = 0; j <arr.length-i-1; j++) {
if(arr[j]>arr[j+1])
{
int temp = arr[j];
arr[j] =arr[j+1];
arr[j+1] = temp;
}
}
}
}
//选择排序
public static void selectSort(int[] arr){
for (int i = 0; i < arr.length; i++) {
for (int j = i+1; j < arr.length; j++) {
if(arr[i]>arr[j])
{
int temp = arr[i];
arr[i] =arr[j];
arr[j] = temp;
}
}
}
}
//遍历数组
public static void prinArray(int[] arr){
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
}
}
作者:
Hi.。
时间:
2015-12-22 10:55
本帖最后由 Hi.。 于 2015-12-22 11:00 编辑
选择排序的 排完倒数第二个,最后 一个就自动出来不用再排了
所以可以 for (int i = 0; i < arr.length-1 ; i++)for (int j = 0; j < arr.length -1 ; j++)
作者:
guxing1213
时间:
2015-12-22 11:30
那我就在你这里练习一遍,{:3_46:}
class Demo
{
public static void main(String[] args)
{
int[] arr = {23,21,56,12,4,7};
printArray(arr);
selectSort(arr);
printArray(arr);
System.out.println(".........");
bubbleSort(arr);
printArray(arr);
}
//选择排序
public static void selectSort(int[] arr)
{
for (int x=0; x<arr.length-1; x++)
{
for (int y=x+1; y<arr.length; y++)
{
if(arr[x]>arr[y])
{
swap(arr,x,y);
}
}
}
}
//冒泡排序
public static void bubbleSort(int[] arr)
{
for (int x=0; x<arr.length-1; x++)
{
for (int y=0; y<arr.length-x-1; y++)
{
if(arr[y]>arr[y+1])
{
swap(arr,y,y+1);
}
}
}
}
//位置置换
public static void swap(int[] arr,int a,int b)
{
int temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
//遍历数组
public static void printArray(int[] arr)
{
System.out.print("[");
for (int x=0; x<arr.length; x++)
{
if (x!=arr.length-1)
System.out.print(arr[x]+",");
else
System.out.println(arr[x]+"]");
}
}
}
作者:
song881224
时间:
2015-12-22 12:11
谢谢分享,顶一个
作者:
continuer
时间:
2015-12-22 22:28
这个一定要会的最好能用手写出来
作者:
隔壁老猫
时间:
2015-12-23 00:08
谁说必考了 = = 你别闹
作者:
Jerson_ZF
时间:
2015-12-23 08:20
必考????面试必考吗?
作者:
chengz
时间:
2015-12-23 20:15
哪里必考?
作者:
lixy
时间:
2015-12-23 21:47
不是必考吧,不过几率挺大
作者:
anuo
时间:
2015-12-23 22:33
只要把思想理解了,其实代码还是挺好实现的
作者:
洪志豪1994
时间:
2015-12-23 22:36
这个还是要要求手写呢
作者:
continuer
时间:
2015-12-23 22:51
最好能手写出来,点招考的几率很大
作者:
continuer
时间:
2015-12-23 22:52
还有io流的是每次都必考的,今天那个老师都说了,把io流多复习
作者:
icm
时间:
2015-12-23 23:03
这种排序挺锻炼个人逻辑的。。
作者:
愿随风丶飘雪
时间:
2015-12-23 23:06
恩恩,最经典的两种排序方法
作者:
四夕
时间:
2015-12-24 00:57
学习了......
作者:
谢光智
时间:
2015-12-24 11:44
我来学习学习~
作者:
云鱼
时间:
2015-12-24 20:24
今天弄了半天才弄出来,考试要手写
作者:
DayBreak
时间:
2015-12-24 21:57
感觉不会考那么简单啊
作者:
continuer
时间:
2015-12-25 22:51
云鱼 发表于 2015-12-24 20:24
今天弄了半天才弄出来,考试要手写
嘿嘿,这个必须要熟练哦,先分析清楚流程,然后在写 就简单了
作者:
continuer
时间:
2016-1-7 23:29
点招了,考了冒泡排序
作者:
fagug
时间:
2016-1-8 15:07
思想流程都比较清楚,就是自己写的时候写的好慢,总要修修改改的,郁闷。。。。。。。。。
作者:
continuer
时间:
2016-1-16 12:12
多敲几遍就好了
作者:
rushing
时间:
2016-1-16 12:16
好好看看。。。。先记下了
作者:
wxw19910324
时间:
2016-1-16 13:57
视频里面都有 毕老师的
作者:
ContainsM
时间:
2016-1-16 14:14
选择排序不应该是 比较、记录索引、最后交换吗?
作者:
晓寒轻
时间:
2016-1-16 15:39
写注释。。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2