定义一个数组 例如:int[] arr = new int[] { 77, 90, 16, 54, 56 },完成利用选择排序对数组中的元素进行排序
作者: 谭立文 时间: 2012-9-29 21:38
这是在刷贴吗?太明显了,实在不明自己先找找资料吧。
作者: 杨立考 时间: 2012-9-29 21:45
既然你这样理解,那我也没什么好解释的。
作者: 宫明星 时间: 2012-9-29 21:48
写了一个选择排序,一个冒泡排序- class ArrayTest
- {
- public static void main(String[] args)
- {
- int[] arr = {77,90,16,54,56};
- paixu(arr);
- //maopaoPaixu(arr);
- print(arr);
- }
- //选择排序
- public static void paixu(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])
- {
- int temp = 0;
- temp = arr[x];
- arr[x] = arr[y];
- arr[y] = temp;
- }
- }
- }
- }
- //冒泡排序
- public static void maopaoPaixu(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])
- {
- int temp = arr[y];
- arr[y] = arr[y+1];
- arr[y+1] = temp;
- }
- }
- }
- }
-
- //进行数组打印
- public static void print(int arr[])
- {
- for(int x=0;x<arr.length;x++)
- {
- System.out.println(arr[x]);
- }
- }
- }
复制代码
作者: 王宝龙 时间: 2012-9-29 21:58
本帖最后由 王宝龙 于 2012-9-29 21:59 编辑
- //直接选择排序一枚
- class SelectSortTest
- {
- public static void main(String[] arge)
- {
- int [] a = {77,90,16,54,56};
- for(int i=0;i<a.length;i++)
- {
- System.out.print(a[i]+",");
- }
- System.out.println();
- int [] b = SelectSort(a);
- for(int i=0;i<a.length;i++)
- {
- System.out.print(b[i]+",");
- }
- }
- public static int[] SelectSort(int [] a)
- {
- int i,j,min;
- int temp;
-
- for(i=0;i<a.length-1;i++)
- {
- min = i; //设第i个元素为最小
- for(j=i+1;j<a.length;j++)//寻找关键字最小的元素
- {
- if(a[j]<a[min])
- min = j;//记住最小元素的下标
- }
- if(min!=i)//当最小元素的下标不为i时交换位置
- {
- temp=a[i];
- a[i]=a[min];
- a[min]=temp;
- }
- }
- return a;
- }
- }
复制代码
作者: 郭阳 时间: 2012-9-29 21:59
看视频Day4-04、Day4-05
作者: 胡斌 时间: 2012-9-29 22:41
排序的方法多种多样:选择排序时间复杂服O(n2),而且选择排序是不稳定的。时间复杂度比较高,不太利于效率问题。建议用快排。
排序方法种类:1,插入排序。2,希尔排序。3,冒泡排序。4,快速排序。5,选择排序。6,堆排序。7,归并排序。8,箱排序。9,基数排序。
至于你的选择排序就比较简单:两个for循环就完事,这么简单程序思想,我认为楼主应该试着自己思考,我想这对还是有比较大的帮助的。如果拾人牙慧,那么你怎么最终成长起来。
好了,希望对楼主有所帮助。
作者: hakuna_matata 时间: 2012-9-30 00:55
是该问,如果为了后期方便使用,则需要两个方法 第一个是进行排序...然后第二个是交互. 其实先不要去想代码怎么实现.关键的一点是自己有思路
首先是使用for循环获得每一个元素.然后把每一个元素进行判断(if) 大小见分晓! 然后在使用交互 .刚开始学 你不把这个思路弄明白 到了后面学其他的知识的时候 很容易把这样的小知识点遗忘...不过到了后期有了更简单的排序方式
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |