From 01f15df7348b1c018e85b3e7e738e5f714a14244 Mon Sep 17 00:00:00 2001 From: pyvalux38 <3051207469@qq.com> Date: Wed, 16 Feb 2022 20:59:51 +0800 Subject: [PATCH] =?UTF-8?q?Add=20=E5=86=92=E6=B3=A1=E3=80=81=E7=9B=B4?= =?UTF-8?q?=E6=8E=A5=E6=8F=92=E5=85=A5=E3=80=81=E6=8A=98=E5=8D=8A=E6=8F=92?= =?UTF-8?q?=E5=85=A5=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 冒泡、直接插入、折半插入排序 | 80 ++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 冒泡、直接插入、折半插入排序 diff --git a/冒泡、直接插入、折半插入排序 b/冒泡、直接插入、折半插入排序 new file mode 100644 index 0000000..6044b2a --- /dev/null +++ b/冒泡、直接插入、折半插入排序 @@ -0,0 +1,80 @@ +一、直接插入排序 +(一)直接插入排序是把新的数据插入以及排序好的数列中,排序的基本方法是:每一步将一个待排序的元素,按其排序码的大小,插入到前面已经排好序的一组元素的适当位置上去,直到元素全部插入为止。 +(二)代码: +#include +using namespace std; +void insert_sort(int a[],int n) { + int i,j; + for(i=1; i=0 && a[j]>temp; j--) { + a[j+1]=a[j]; + } + a[j+1]=temp;//此处就是a[j+1]=temp; + } + } +} + +int main() { + int a[8]= {70,50,30,20,10,70,40,60}; + int n=7; + insert_sort(a,n); + for(int i=0; i<=n; i++) { + cout<=high+1; j--){ + L.data[j+1] = L.data[j]; + } + L.data[high+1] = L.data[0]; + } +} +(三)时间复杂度:折半插入排序的时间复杂度仍为 O(n^2)。 +(四)运行时间:0.283秒 +三、冒泡排序 +(一)代码: +#include +void main() +{ + int n[10] = { 25,35,68,79,21,13,98,7,16,62 }; + int i, j,k,temp; + for (i = 1; i <= 9; i++) + { + for (j = 0; j <= 9 - i; j++) + { + if (n[j] > n[j + 1]) + { + temp = n[j]; + n[j] = n[j + 1]; + n[j + 1] = temp; + } + } + printf("第%d趟排序完成后的数据排序:\n",i); + for (k = 0;k < 10; k++) + printf("%-4d", n[i]); + printf("\n"); + } + printf("排序过后的数顺序:\n"); + for (i = 0; i < 10; i++) + printf("%-4d", n[i]); +} +(二)时间复杂度:冒泡排序平均时间复杂度为O(n2) 。 +(三)运行时间:0.463秒