二叉樹排序,比選擇排序,氣泡排序快很多

2021-09-29 16:02:05 字數 2511 閱讀 8888

*初始化乙個長度是100000的隨機數字的陣列

初始化完畢

接下來分別用3種演算法進行排序

選擇法排序,一共耗時15477毫秒

冒泡法排序,一共耗時15801毫秒

二叉樹排序,一共耗時92毫秒

檢視排序結果,是否是不同的陣列物件

[i@7d4991ad

[i@28d93b30

[i@1b6d3586

檢視排序結果,內容是否相同

比較 選擇法 和 冒泡法 排序結果:

true

比較 選擇法 和 二叉樹 排序結果:

true*

//二叉樹的插入和中序遍歷所有的節點

public class node

//如果當前節點有值,就進行判斷,新增的值與當前值的大小關係

else

leftnode.add(v);

}else

rightnode.add(v);}}

}//中序遍歷所有的節點

public list values()

//當前節點

values.add(value);

//有節點的遍歷結果

if(null != rightnode)

return values;

}public static void main(string args) ;

node roots = new node();

for (int number : randoms)

system.out.println(roots.values());}}

//三種排序的**比較

public class sortcompare

system.out.println(「初始化完畢」);

system.out.println(「接下來分別用3種演算法進行排序」);

//從初始化了的隨機數組複製過來,以保證,每一種排序演算法的目標陣列,都是一樣的

int use4sort;

use4sort = arrays.copyof(originalnumbers, originalnumbers.length);

int sortednumbersbyselection = performance(new selectionsort(use4sort),「選擇法」);

use4sort = arrays.copyof(originalnumbers, originalnumbers.length);

int sortednumbersbybubbling=performance(new bubblingsort(use4sort),"冒泡法");

use4sort= arrays.copyof(originalnumbers, originalnumbers.length);

int sortednumbersbytree=performance(new treesort(use4sort),"二叉樹");

system.out.println("檢視排序結果,是否是不同的陣列物件");

system.out.println(sortednumbersbyselection);

system.out.println(sortednumbersbybubbling);

system.out.println(sortednumbersbytree);

system.out.println("檢視排序結果,內容是否相同");

system.out.println("比較 選擇法 和 冒泡法 排序結果:");

system.out.println(arrays.equals(sortednumbersbyselection, sortednumbersbybubbling));

system.out.println("比較 選擇法 和 二叉樹 排序結果:");

system.out.println(arrays.equals(sortednumbersbyselection, sortednumbersbytree));

}inte***ce sort

static class selectionsort implements sort

@override

public void sort()

}} }

@override

public int values()

}static class treesort implements sort

@override

public void sort()

} @override

public int values()

return sortednumbers; }}

private static int performance(sort algorithm, string type)

選擇 冒泡 二叉樹排序比較

利用選擇 冒泡 二叉樹三種排序方法對40000個隨機數字進行排序,比較三種排序方法的時間。選擇法排序 public static void main string args for int i 0 i num.length 1 i for int i 0 i num.length i long en...

二叉樹排序

include include typedef struct btree btr,pbtr typedef struct btrst stack,pstack pbtr bitree null 函式功能 實現非遞迴建立二叉樹 函式原型 void creat btree int a,int size ...

排序二叉樹

include include using namespace std typedef int elemtype struct tnode typedef struct head tree 函式宣告 tree init tnode initnode void displaydesc tnode vo...