码迷,mamicode.com
首页 > 编程语言 > 详细

自己无聊脑袋短路想了一个排序算法。。

时间:2017-08-25 17:41:17      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:java自己思路自己写的一个简单的排序算法

当时是写排序算法,写到shell算法,突然脑袋短路想到了这个思路 然后就试着写了下,

思路大体如下:

    一列数列 例如:1,5,2,6,7,4,3

                先看第一个数,1 它的前面没有比它大的数,后面没有比它小的数,若以它的位置就是这样

                再看第二个数,5 它的前面没有比它大的数,后面有2,4,3三个数比它小,那他的位置是不是

       应该向后移动3个单位。就是这样1, , , ,5, ,

                以此来看是不是就可以把数字的顺序就记录下来了,然而并不能直接在原来的数列中修改,

        因为判断一个数之后需要原有的数列继续确定下一个数,所以说我在这个算法里面又定义了一

        个数组,来保存记录下来的已经判断过后的数字顺序,这个算法是半个月之前写的一直没有在看

        ,因为有人让我分享一些自己看的东西,就想到了这个,整理整理也没考虑时 空复杂度,就这么             写了点东西,我也不知道之前这个算法有没有什么名字,好了不多哔哔代码如下:


public static void sopln(Object obj)

{

System.out.println(obj.toString());

}

public static int[] show()

{

Scanner scan = new Scanner(System.in);

String[] str = scan.next().split(",");

int[] in = new int[str.length];

for(int i = 0; i<str.length; i++)

{

if(str[i] !=null)

{

in[i] = Integer.parseInt(str[i]);

}

else

in[i] = -1;

}

if(scan.nextLine().equals("over"))

scan.close();

return in;

}

public static boolean less(int a ,int b)

{

return a<b;

}

public static void exch(int[] in, int a, int b)

{

if(!((a<0||a>in.length-1)&&(b<0||b>in.length-1)))

{

int temp = in[a];

in[a] = in[b];

in[b] = temp;

}

sopln("交换错误!!");

}

public static boolean isSort(int[] in)

{

for(int i = 0;i<in.length-1;i++)

{

if(less(in[i+1],in[i]))

return false;

}

return true;

}

public static int[] mySortDemo(int[] in)

{

int[] ot = new int[in.length];

for(int x = 0; x <in.length;x++)

{

int min = 0;

int max = 0;

for(int y = 0;y < x; y++)

if(in[x]<in[y])

max++;

for(int y = x+1;y <in.length;y++)

if(in[x]>in[y])

min++;

ot[x-max+min] = in[x];

}

return ot;

}


本文出自 “13205514” 博客,谢绝转载!

自己无聊脑袋短路想了一个排序算法。。

标签:java自己思路自己写的一个简单的排序算法

原文地址:http://13215514.blog.51cto.com/13205514/1959353

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!