
数据结构与算法(c语言)
文章平均质量分 52
星空下的那个人影
不像程序员的程序猿
展开
-
插入排序及优化
普通插入排序(以升序为例):将数组分成两个区域,排序区域和未排序区域,每一轮从未排序区域中取出第一个元素,插入到排序区域(需要保证顺序)重复以上步骤,直到整个数组有序import java.util.Arrays;public class Task03_InsertSort { public static void main(String[] args) { int[] a = {9, 3, 7, 2, 5, 8, 1, 4}; insert(a);原创 2022-04-20 19:45:59 · 176 阅读 · 0 评论 -
冒泡排序及优化
普通冒泡排序(以升序为例):依此比较数组中相邻两个元素大小,若a[j]>a[j+1],则交换两个元素,两两都比较一遍称为一轮冒泡,结果是让最大的元素排至最后重复以上步骤,直到整个数组有序import java.util.Arrays;public class Task01_BobbleSort { public static void main(String[] args) { int[] a = {5, 9, 7, 4, 1, 3, 2, 8};//原创 2022-04-19 23:20:28 · 3285 阅读 · 1 评论 -
线性时间选择问题
给定的线性集中n个元素和一个正整数k(1≤k≤n),要求在线性时间内(即时间复杂度为O(n))找出这n个元素中第k小的元素。原创 2017-10-15 15:53:58 · 4171 阅读 · 3 评论