// 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小的數放在相應的位置。我們可以想象一種場景,有一些賬單需要我們按照時間進行排序,我媽每次選擇最早的一張拿在...