資料結構 老師:李崇明 助教:楊斯竣.

Slides:



Advertisements
Similar presentations
Software Learning Resource Service Platform CHAPTER 7 搜尋和排序 (Search and Sort) 1.
Advertisements

中医养生和肿瘤预防 金文君 主任医师 (广州医学院第二附属医院 ) 电话: 地点: 广州医学院第二附属医院,中医科 周一全天门诊.
用心教学 用爱育人 信息工程学院 杨树林 2016 年 5 月. “ 一批好教师可以造就一所好的学校,一个好教师可以影 响一批学生的未来 ” ,而能否成为好教师的关键在于是否 具有优良的师德教风。良好的学风、教风是一种无形的 力量,具有强有力的导向作用、凝聚作用和规范作用, 它可振奋人的精神,激励人的斗志,约束人的行为。
授課老師:楊泰和 組長: 4990L072 陳韋伶 組長: 4990L072 陳韋伶 組員: 4990L002 洪乃家 組員: 4990L002 洪乃家 4990L044 莊穎潔 4990L044 莊穎潔 4990L052 蔡政樺 4990L052 蔡政樺 4001L002 葉芳妤 4001L002.
冠心症 主講人 : 陳冠儒護士. 冠狀動脈血管內膜因硬塊 斑 (Plaque) 的堆積,引起 血管內膜局部狹窄,影饗 血流,引發心肌缺氧的症 狀.
懷孕到分娩的徵象 女性的生殖器官可以分為外生殖器官與內生殖器官: 1. 外生殖器官(external genitalia)
C语言程序设计 李伟光.
教學經驗分享 吳毅成 國立交通大學資訊工程系 2012年4月.
进出口贸易实务教程 Import & Export Practice
指導教授: 黃淑卿 教授 組員: 4980P018 黃梓婷 4980P011 薛琇萍 4980P077 陳佳蓉 4991P025 池靜怡
Q&A 百萬小學堂.
用“自言自语法”提高学生 英语口头表达能力 李奉栖.
人員招募、甄試、與面談 1001.
分治演算法 與 刪尋演算法 各個擊破與化整為零.
第5章 排序与查找 PART A 《可视化计算》.
第23章 增加点击率 ——网站优化与推广.
算法设计与分析 Algorithm Design and Analysis
IB 语言A课程简介.
TQC+ 物件導向程式認證-JAVA.
分治演算法 各個擊破獲得最後勝利 國立中央大學 資工系 江振瑞 教授.
第二章.网络经济下的产品与需求 第一节 网络经济下的产品及其特征 第二节 网络经济下的需求.
宋秀苗 大连理工大学城市学院图书馆 电子期刊的利用(论文检索) 宋秀苗 大连理工大学城市学院图书馆
慢性病的預防與自我照護.
转正述职报告 乐恩公司 史航
精英型软件人才 培养模式的探索与实践 卢 苇 北京交通大学国家示范性软件学院.
課程名稱:資料結構 授課老師:_____________
分治演算法 各個擊破獲得最後勝利 國立中央大學 資工系 江振瑞 教授.
主讲人: 吕敏 { } Spring 2012 ,USTC 算法基础 主讲人: 吕敏 { } Spring 2012 ,USTC.
物件導向程式設計 (Object-Oriented rogramming)
排序 Sorting.
快速排序法 (Quick Sort).
第9章 排序.
第十章 排序與搜尋.
第 7 章 陣列 (Array).
CHAPTER 6 認識MapReduce.
Chapter 2 – Chapter 4 Chang Chi-Chung
程式撰寫流程.
多媒體製作流程 May 吳怡蒨.
演算法與資料結構 製作單位: 高雄市立高雄中學.
4.1 一維陣列 4.2 for(:) 迴圈 4.3 動態陣列 4.4 二維陣列 4.5 非矩形陣列
基數排序法.
Sorting 排序 Bubble Sort O(n2) Insert Sort Selection Sort Quick Sort
Data Structure.
如何赢一个机械键盘
Sorting in Linear Time Michael Tsai 2013/5/21.
105-1 Data Structure Exam /12/27.
實作輔導 2 日期: 3/24(星期六) 09:10~16:00 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口)
8-1 最大數及最小數找法 8-2 排序 8-3 二元搜尋法 8-4 動態規劃技巧 8-5 計算難題
資料結構與C++程式設計進階 排序與搜尋 講師:林業峻 CSIE, NTU 6/ 14, 2010.
第8章 資料排序 資料結構設計與C++程式應用
賴禎秀 教授 編著 國立台灣海洋大學商船學系碩士班
第九章 排序 概述 插入排序 快速排序 交换排序(起泡排序) 选择排序 归并排序.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
Course 10 削減與搜尋 Prune and Search
資料結構與C++程式設計進階 遞迴(Recursion) 講師:林業峻 CSIE, NTU 6/ 17, 2010.
第二章 Java基本语法 讲师:复凡.
演算法分析 (Analyzing Algorithms)
陣列 東海大學物理系‧資訊教育 施奇廷.
北一女中 資訊選手培訓營 遞迴、河內塔與merge sort Nan.
Multi-threaded Algorithm 3
程式設計--linear search 通訊一甲 B 楊穎穆.
本教學投影片係屬教科書著作之延伸,亦受著作權法之保護。
方格紙上畫正方形.
The role of Algorithms in Computing
資料結構 老師:李崇明 助教:楊斯竣.
Data Structure.
Advanced Competitive Programming
10107: What is the Median? ★★☆☆☆
JAVA 程式設計與資料結構 第十九章 Sorting.
Lecture #10 State space approach.
Presentation transcript:

資料結構 老師:李崇明 助教:楊斯竣

課程內容 排序的基本特性 排序種類 排序方法 程式撰寫 依排序後的順序來看 依儲存媒體來看 插入排序法(Insertion Sort) 氣泡排序法(Bubble Sort) 選擇排序法(Selection Sort) 程式撰寫

排序的基本特性 依照某種條件將資料項目按順序排列 鍵值 廠商估計,電腦的運算約有25%的執行時間是耗費在排序上。 按照數字的大小由小至大排列 按照筆畫順序排列姓名 鍵值 比如號碼數字、身高,或筆畫數等某種特定的值。 透過鍵值大小的比較來排序。 廠商估計,電腦的運算約有25%的執行時間是耗費在排序上。

排序種類-依排序後的順序來看 穩定性(Stable)排序 不穩定性(Unstable)排序 排序過後能使相同數值的資料,保持原順序中之相對位置。 不穩定性(Unstable)排序

排序種類-依儲存媒體來看 內部排序(internal sort) 外部排序(external sort) 資料可以全部同時載入主記憶體(main memory)中完成排序。 外部排序(external sort) 資料太多以致無法同時於主記憶體中來完成排序,而需借用輔助記憶體,且必須不斷的做資料抽換的動作。相當的耗時。

插入排序法(Insertion Sort) 從第2個資料開始,每次考慮一資料,並依序插入其前面適當的位置。 每到新位置 i,即能找到該數值的適當位置,並保證前 i 個數值皆排序完成。 Input 45 39 12 25 30 第1回合 第2回合 第3回合 第4回合

插入排序法(Insertion Sort) 穩定性排序 練習寫出以下數列,使用插入排序法的過程。 Input:21, 76, 85, 7, 32, 64, 101

氣泡排序法(Bubble Sort) 又稱為交換排序(interchange sort)。 如果是由小排到大,每次都只將相鄰的兩個資料做比較,假使前一個比後一個大時,則互相對調。 每一回合結束,最大值都會被放在對的位置上。 時間複雜度: O(n2) 穩定性排序 Input 18 2 20 34 12 第1回合 第2回合 第3回合 第4回合

練習 練習寫出以下數列,使用氣泡排序法的過程。 Input:95, 27, 90, 49, 80, 58, 6, 9, 18, 50

95 27 90 49 80 58 6 9 18 50 第1回合 第2回合 第3回合 第4回合 第5回合 第6回合

選擇排序法(Selection Sort) 每回合到新位置 i 並與後方最小的值交換,保證前 i 個數值皆排序完成。 時間複雜度: O(n2) 穩定性排序 Input 18 2 20 34 12 第1回合 第2回合 第3回合 第4回合

練習 練習寫出以下數列,使用選擇排序法的過程。 Input:95, 27, 90, 49, 80, 58, 6, 9, 18, 50

95 27 90 49 80 58 6 9 18 50 第1回合 第2回合 第3回合 第4回合 第5回合 第6回合 第7回合

程式碼 Java的陣列提供內建的排序方法 撰寫一程式碼,讓使用者輸入個數及數值資料,將其數列排序並印出。 必須import java.util.*的類別庫 由小到大的內建排序方法:Arrays.sort(陣列名); 撰寫一程式碼,讓使用者輸入個數及數值資料,將其數列排序並印出。

合併排序(Merge Sort) 典型的「分而治之」排序法 把陣列分解成後, 再兩兩合併進行排序。

快速排序法(Quick Sort) 「分而治之」 (divide and conquer)排序法 從數值中挑一個「基準」(pivot) 比基準小的元素放在基準前方,形成左串列 大的放在後方形成右串列 遞迴將左右串列進行Quick Sort。

快速排序法(Quick Sort)

練習 練習寫出以下數列,使用快速排序法的過程。 Input:95, 27, 90, 49, 80, 58, 6, 9, 18, 50

95 27 90 49 80 58 6 9 18 50 第1回合 第2回合 第3回合 第4回合