黑马程序员技术交流社区
标题:
排序问题
[打印本页]
作者:
蒋文辉
时间:
2015-2-2 22:52
标题:
排序问题
并用Java语言实现一个效率较高的。。。我只知道选择、冒泡排序。
什么排序效率较高啊,求代码!!!!!!!!!!!!!!
作者:
朋好友
时间:
2015-2-2 23:30
kuaisupaixu
作者:
邓士林
时间:
2015-2-3 12:19
可以上网搜搜,排序算法广泛的有八大排序算法,然后每个算法又有不同的变种
作者:
艺多不压身丶
时间:
2015-2-3 22:59
本帖最后由 艺多不压身丶 于 2015-2-3 23:01 编辑
首先排序分为四种: 要是说快。当然是快速排序比较快。加上默认的排序就是选择的快速排序
交换排序: 包括冒泡排序,快速排序。
选择排序: 包括直接选择排序,堆排序。
插入排序: 包括直接插入排序,希尔排序。
合并排序: 合并排序。
下面附上链接:可以参考一下。代码里面都是有的。记住思想就好
http://www.cnblogs.com/huangxincheng/archive/2011/11/14/2249046.html
作者:
phil
时间:
2015-2-3 23:01
学习楼上,涨知识了。。
作者:
小鹏_sJQBO
时间:
2015-2-3 23:04
同样涨姿势了!
作者:
janstk
时间:
2015-2-3 23:07
最快的是希尔了吧。。。
作者:
从未离开过
时间:
2015-2-3 23:07
是希尔排序最快把
作者:
JAVA,Android
时间:
2015-2-3 23:13
果断希尔排序,套3个for,但是这些算法实际开发中不会用的上,面试的话也只会面试常见的算法。冒泡,选择是最多的了
作者:
Novice.Jin
时间:
2015-2-3 23:58
算法,别深入研究,太浪费时间和精力,算法应该是有类库的
作者:
田得聖老师
时间:
2015-2-4 18:08
当然是快速排序法,主要思想是:通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分关键字小,则分别对这两部分继续进行排序,直到整个序列有序。
作者:
田得聖老师
时间:
2015-2-4 18:13
tds13821562936 发表于 2015-2-4 18:08
当然是快速排序法,主要思想是:通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比 ...
public int getMiddle(Integer[] list, int low, int high) {
int tmp = list[low]; //数组的第一个作为中轴
while (low < high) {
while (low < high && list[high] > tmp) {
high--;
}
list[low] = list[high]; //比中轴小的记录移到低端
while (low < high && list[low] < tmp) {
low++;
}
list[high] = list[low]; //比中轴大的记录移到高端
}
list[low] = tmp; //中轴记录到尾
return low; //返回中轴的位置
}
作者:
jiangwenjun
时间:
2015-2-5 13:12
如果你想知道选择和冒泡排序哪个效率高,我给你我的基础测试的题目吧!!!
/**
*第一题: 请列举您了解的一些排序算法,并用Java语言实现一个效率较高的。
* @author
*/
//我了解的排序算法有(直接选择排序,冒泡排序,折半排序,快速排序,直接插入排序,希尔排序,归并排序)而冒泡排序算法效率较高。
package com.itheima;
class Maopao
{
//遍历数组
public void bianLI(int[] arr)
{
System.out.print("[");
for(int a =1;a<arr.length;a++)
{
//末尾出注意是"]"
if(a==arr.length-1)
System.out.print(arr[a]+"]");
else
System.out.print(arr[a]+",");
}
//换行
System.out.println();
}
//折半插入排序
public void bubbleSort(int[] str)
{
for ( int i = 0; i < str.length; i++ )
{
for ( int j = i + 1; j < str.length; j++ )
{
if (str[i] > str[j])
{
swap(str, i, j);
}
}
}
}
//元素交换位置
public void swap(int[] arr,int a,int b)
{
arr[a]=arr[a]^arr[b];
arr[b]=arr[a]^arr[b];
arr[a]=arr[a]^arr[b];
}
}
public class Test1
{
public static void main(String[] args)
{
int[] arr = {3,6,8,9,3,8,10,14};
Maopao s =new Maopao();
//打印原数组
s.bianLI(arr);
//调用排序方法
s.bubbleSort(arr);
//打印排序后的数组
s.bianLI(arr);
}
}
复制代码
作者:
奔跑的猴子
时间:
2015-2-5 14:10
涨姿势了……
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2