選擇、插入排序
main.cpp
1 #include 3 #include "sorttesthelper.hsorttesthelper.h"4
5using
namespace
std;
67 template8
void selectionsort(t arr,int
n) 16}
1718 template19
void insertionsort(t arr,int
n)27}28
29int
main()
1 #include 2 #include 3 #include 4 #include 56結果using
namespace
std;78
namespace
sorttesthelper
1718
int *generatenearlyorderedarray(int n, int
swaptimes)
28return
arr;29}
3031 template32
void printarray(t arr,int
n)38
39 template40
bool issorted(t arr,int
n)46 template47
void testsort(const
string &sortname,void (*sort)(t,int),t arr,int
n)59 }
插入排序快的原因
氣泡排序
方法1
1 template2方法2void bubblesort( t arr , int
n)14
15//
優化, 每一趟bubble sort都將最大的元素放在了最後的位置
16//
所以下一次排序, 最後的元素可以不再考慮
17 n --;
1819 }while
20 }
1 template2優化三種o(n^2)級別演算法的思路:void bubblesort2( t arr , int
n)15 n =newn;
16 }while(newn > 0
);17 }
時間複雜度比較
分數線劃定(o n 2 排序演算法)
description 世博會志願者的選拔工作正在 a 市如火如荼的進行。為了選拔最合適的人才,a市對所有報名的選手進行了筆試,筆試分數達到面試分數線的選手方可進入面試。面試分數線根據計畫錄取人數的150 劃定,即如果計畫錄取m名志願者,則面試分數線為排名第 m 150 向下取整 名的選手的分數,而...
整數奇偶數排序(o n 2 排序演算法)
description 給定10個整數的序列,要求對其重新排序。排序要求 1.奇數在前,偶數在後 2.奇數按從大到小排序 3.偶數按從小到大排序。input 輸入一行,包含10個整數,彼此以乙個空格分開,每個整數的範圍是大於等於0,小於等於100。output 按照要求排序後輸出一行,包含排序後的1...
O N 2 排序演算法分析 選擇排序和插入排序
基本思想 每次遍歷陣列,找到當前陣列中最小的乙個元素,與第乙個元素調換位置。第一次排序 遍歷8個元素,找到當前陣列中最小元素2,與第乙個元素調換,此時,2現在的位置就是其最終的位置 第二次排序 從第二個元素開始遍歷,找到最小的元素4,與第二個元素8對調位置 第三次排序最小的元素時5,與當前位置對換,...