首页 > 代码库 > 插入排序2.0
插入排序2.0
好久没复习以前写的数据结构了,今天看了一段以前写的插入排序。
插入排序原理:通俗讲,和打扑克牌整理牌是一个道理,从一堆混乱牌中,一张一张拿,拿一张后与前面排好的牌一个个比较,插入合适的位置。
时间复杂度:O(n^2)
/*插入排序2.0 **此版本将创建数组函数删除, **创建数组与插入排序编排到 **同一个函数里。 */ #include "stdafx.h" #include <stdio.h> #define M 1000 void Insert_sorting(int a[],int n);//插入排序 void Out_put(int a[], int n);//输出数组 int main() { int n; int a[M] = {0}; printf_s("输入待排序个数\n"); printf_s("n="); scanf_s("%d", &n); Insert_sorting(a,n); Out_put(a, n); return 0; } void Insert_sorting(int a[], int n) { int i, j, wep;//wep is 中间变量 printf_s("请输入第1个值="); scanf_s("%d", &a[0]); for (i = 1; i < n; i++) { printf_s("请输入第%d个值=", i+1); scanf_s("%d", &a[i]); for (j = i;; j--) { if (j == 0) { break; } if (a[j] < a[j - 1]) { wep = a[j - 1]; a[j - 1] = a[j]; a[j] = wep; } else { break; } } } } void Out_put(int a[], int n) { int i; for (i = 0; i < n; i++) { printf_s("%d ", a[i]); } }
插入排序2.0
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。