排序 直接插入排序,二分插入排序,執行時間對比

2021-09-02 11:40:05 字數 1175 閱讀 1283

typedef struct 可以 換成 struct,試了下也對

typedef struct  node;

//順序表的儲存結構

typedef struct sqlist; //順序表型別

--------換成---:

struct node;

//順序表的儲存結構

struct sqlist;

#include #include #include // 隨機函式rand()需要的標頭檔案

#include using namespace std;

#define maxsize 2000000 //順序表的最大長度

typedef struct node;

//順序表的儲存結構

typedef struct sqlist; //順序表型別

//直接插入排序

void insertsort(sqlist &l)

l.r[j + 1] = l.r[0]; //將r[0]即原r[i],插入到正確位置}}

}//二分插入排序

void binsertsort(sqlist &l)

else

}for (j = i - 1; j >= high + 1; j--)

l.r[high + 1] = l.r[0];

}}int main()

insertsort(l);//直接插入排序

}finish1 = clock();

double time1 = (double)(finish1 - start1) / clocks_per_sec;

printf("直接插入排序執行時間為:%lf seconds \n", time1);

clock_t start2, finish2;

start2 = clock();

binsertsort(l);//二分插入排序

}finish2 = clock();

double time2 = (double)(finish2 - start2) / clocks_per_sec;

printf("二分插入排序執行時間為:%lf seconds \n", time2);

return 0;

}

插入排序 直接插入排序 二分插入排序 希爾排序

選擇排序是一種較為簡單的排序演算法。它的實現原理是每一次從待排序的資料元素中挑出乙個最小 大 的元素,存放在資料的起始 末尾 位置,直到所有待排序的資料排完。直接插入排序 當插入第i個元素的時候,我們認為它前面的i個元素已序。這時候用array i 的排序嗎與前面的排序碼進行比較,找到適合的位置就進...

排序演算法 插入排序(直接插入,二分插入,希爾)

第乙個數預設有序。從第二個數開始,從後往前掃瞄。若取出數 當前數,則指標不斷前移,直到取出數 當前數時,把取出數插入到當前位置。public static int insertsort int arr arr pre 1 cur return arr 以下過程具體說明了兩個數是怎麼實現有序的 pre...

插入排序 直接插入排序

直接插入排序演算法思想 將整個資料表分成左右兩個子表,其中左子表為有序表,右子表為無序表 整個排序過程就是將右子表中的元素逐個插入到左子表中,直到右子表為空,而左子表成為新的有序表。演算法過程分析 將待排序的元素存放在陣列r n 1 中,在初始狀態下,r 0 為監視哨,r 1 為有序區,r 2 r ...