課程作業 資料結構與演算法C (1)

2021-09-14 07:26:32 字數 3651 閱讀 9751

課程作業6(歸併排序 氣泡排序 插入排序 選擇排序)

/*歸併排序 氣泡排序 插入排序 選擇排序*/

//主程式

#include#includeusing std::vector;

using std::cout;

using std::endl;

using std::swap;

#include"bubble_sort.h"

#include"insert_sort.h"

#include"select_sort.h"

#include"merge_sort.h"

templatevoid print(vector& a)

cout << endl;

}int main()

; //vectorv = ;

vectorv = ;

//vectorv = ;

//vectorv = ;

//int a = ;

//vectorv(&a[0],&a[0]+7);

cout << "原始排序:";

print(v);

cout << "歸併排序:";

merge_sort(v);

print(v);

cout << "氣泡排序:";

bubble_sort(v);

print(v);

cout << "插入排序:";

insert_sort(v);

print(v);

cout << "選擇排序:";

select_sort(v);

print(v);

system("pause");

return 0;

}

/********************bubble_sort.h*******************/

#pragma once

//氣泡排序演算法(全部元素)

templatevoid bubble_sort(vector& a)

//冒泡

templatevoid bubble(vector& a, int first, int last)

//氣泡排序演算法

templatevoid bubble_srt(vector& a, int first, int last)

/********************merge_sort.h*******************/

#pragma once

#includeusing std::deque;

#include//合併排序演算法a[first,last)

templatevoid merge_sort(vector& a, int first, int last)

//自底向上合併排序

templatevoid merge_sort1(vector& a, int first, int last) }}

//自然合併排序

/********************insert_sort.h*******************/

#pragma once

//插入元素a[last]到有序區間[first,last)

templatevoid insert(vector& a, int first, int last)

a[i] = x;

}//插入排序演算法

templatevoid insert_sort(vector& a, int first, int last)

}//插入排序演算法(全部元素)

templatevoid insert_sort(vector& a)

/********************select_sort.h*******************/

#pragma once

//確定[first,last)中最小元素位置

templateint min_elem(vector& a, int first, int last)

//選擇排序演算法

templatevoid select_sort(vector& a, int first, int last)

}//選擇排序演算法(全部元素)

templatevoid select_sort(vector& a)

課程作業7(快速排序 隨機快速排序)

/* 快速排序 隨機快速排序*/

//主程式

#include#includeusing std::vector;

using std::cout;

using std::endl;

using std::swap;

#include"insert_sort.h"

#include"qsort.h"

#include"rand_qsort.h"

templatevoid print(vector& a)

cout << endl;

}//快速排序

int main()

;cout << "原始排序:";

print(v);

cout << "快速排序:";

rand_qsort(v);

print(v);

vectorv1 = ;

cout << "原始排序:";

print(v1);

cout << "隨機快速排序:";

rand_qsort(v1);

print(v1);

system("pause");

return 0;

}

/********************qsort.h*******************/

#pragma once

const int threshold =1;

//區間分割

templateint partition(vector& a, int first, int last,t pivot)

insert_sort(a, first, last);

}//取三點的中位數

templateconst t& median(const t& a, const t& b, const t& c)

templatevoid qsort(vector& a)

/********************rand_qsort.h*******************/

#pragma once

#include using std::rand;

templatevoid rand_qsort(vector& a, int first, int last)

insert_sort(a, first, last);

}templatevoid rand_qsort(vector& a)//隨機化快速排序

int random(int first, int last)

資料結構(c )(1) 棧

最近在複習資料結構 我用的是資料結構與演算法分析c 描述 第三版的書,很不錯的書,有興趣的可以去看看 的相關知識,順便就做了些整理,以供參考。棧 stack 是限制插入和刪除操作只能在乙個位置進行的表,該位置是表的末端,稱為棧的頂。對棧的操作是push 入棧 和pop 出棧 前者相當於插入,後者則是...

資料結構 C 1 第 1 章 緒論

1.1.1 氣泡排序 時間複雜度,用大o記號 t n o n2 t n o n 2 t n o n2 void bubblesort1a n 1.1.2 演算法 演算法是指基於特定的計算模型,旨在解決某一資訊處理問題而設計的乙個指令序列。演算法應該具備 輸入與輸出,基本操作 確定性與可行性,難解性,...

資料結構與演算法(1)

演算法 資料結構 一 演算法 1.演算法的幾個特徵是什麼。2.演算法複雜性的定義。大o 小o分別表示的含義。3.遞迴演算法的定義 遞迴演算法的兩要素。4.分治演算法的思想,經典的分治演算法 全排列 二分搜尋 歸併排序 快速排序 線性時間選擇 最接近點對問題 5.動態規劃演算法解題框架,動態規劃演算法...