內排序演算法比較

2021-06-08 15:24:26 字數 1216 閱讀 1692

// datastructure1.cpp : 定義控制台應用程式的入口點。

//#include "stdafx.h"

#include#include#includeusing namespace std;

#define maxsize 4000 //可排序表的最大長度

#define sortnum 6 //測試6中排序方法

//#define max 1000

/*typedef struct node node;

*/typedef long datatype[maxsize+2];

datatype data;

datatype data2;

datatype r1;

int size;//可排序表的長度

//int head;

//int fr[10];

//int re[10];

long compcount;//統計比較次數

long shiftcount;//統計移動次數

void beforesort()//對比較次數和移動次數清零

bool less(int i,int j)//若表中第i個元素小於第j個元素,則返回true,否則返回false

shift(data,data,low,high);

compcount++;

while(low0&&less(j+h,j))

i++;

}h=(h-1)/2;

} output();

} void sift(int left,int right)//堆排序的調堆函式

output();

}void initialization()//系統初始化

void interpret(char cmd)//呼叫各個演算法

switch(cmd)

size=sizeinput;

cout<<"由系統隨機產生待排序表的各個演算法的比較次數和移動次數如下:\n";

randomizelist();

for(m=0;m<3;m++)

if(m==1)

if(m==2)

for(int i=1;i<=size;i++) cout<>cmd;

interpret(cmd);

}while(cmd!='c');

}

基於比較的內排序演算法(三)

前面發了兩篇內排序的文章。一 中當時歸併排序並沒有寫出,二 中今天發現在非遞迴quicksort中stack存在記憶體洩露,並且主程式選項功能支援不是很好,所以今天又練習寫了一遍。大規模排序時,發現1million整形資料大小為6.8m,int在當前平台佔4b 1million 1000000 10...

各種內排序演算法效能比較

各種內排序演算法效能比較 個人總結 穩定性最好情況 最壞情況 平均空間複雜度 確定最終位置 簡單選擇排序 屬於選擇排序 不穩定o n n 1趟 o n n 1趟 o n n 1趟 o 1 一趟排序後能確定某個元素的最終位置 直接插入排序 穩定o n n 1趟 o n n 1趟 反向有序 o n n ...

內排序演算法

每次需要排序的時候總是會忘記基本的排序演算法,為了防止自己再次忘記,寫個部落格加深自己的印象 簡單選擇排序大概就是最簡單我們最容易想到的一種排序方法,一共進行n 1次選擇,在第i次選擇中選擇第i小的數放在相應的位置。我們可以想象一種場景,有一些賬單需要我們按照時間進行排序,我媽每次選擇最早的一張拿在...