課程作業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.動態規劃演算法解題框架,動態規劃演算法...