“chaos”的算法--之直接插入排序略解

简介:

 排序是计算机程序设计中一种重要的操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个按关键字有序的序列。

   我们之前所熟知的大概是冒泡排序,选择排序,但相对来说,这两种方法的效率不是太高,在这篇文章中我简单的介绍下直接插入排序。

   直接插入排序是一种简单的排序方法,它的基本操作是将一个记录插入到已排好的有序表中,从而得到一个新的.记录数增一的有序表。

  例如:一直待排序的一组记录的初始排列如下 所示:

         R(49), R(38), R(97), R(76), R(13), R(27)……

假设在排序过程中,前4个记录已按关键字递增的次序重新排列,构成一个含有4个记录的有序序列:{R(38), R(49), R(65), R(97)}先要将上面的初始序列的第五个记录插入到这个已拍好的记录中,则首先要在一排好序中进行查找以确定R(76)所应插入的位置,然后插入。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void  Dir_Sort(Sqlist L)
{
int  i, j;
for (i = 2; i < L.length; i++)
     {
if (LT(L.r[i].data, L.r[i-1].data))
         {
             L.r[0] = L.r[i];
             L.r[i] = L.r[i-1];
for (j = i-2; LT(L.r[0].data, L.r[j].data); j--)
             {
                 L.r[j+1] = L.r[j];
             }
             L.r[j+1] = L.r[0];
         }
     }
for (i = 1;i <= L.length; i++)
         printf ( "%d " ,L.r[i].data);
     printf ( "\n" );
}



     本文转自 驿落黄昏 51CTO博客,原文链接:http://blog.51cto.com/yiluohuanghun/879937,如需转载请自行联系原作者



相关文章
|
1月前
|
算法 搜索推荐
数据结构与算法学习十一:冒泡排序、选择排序、插入排序
本文介绍了冒泡排序、选择排序和插入排序三种基础排序算法的原理、实现代码和测试结果。
18 0
数据结构与算法学习十一:冒泡排序、选择排序、插入排序
|
1月前
|
搜索推荐 算法
【排序算法(一)】——插入排序,选择排序 —> 深层解析
【排序算法(一)】——插入排序,选择排序 —> 深层解析
|
4月前
|
算法 搜索推荐 C#
|
5月前
|
机器学习/深度学习 算法 搜索推荐
数据结构算法--2 冒泡排序,选择排序,插入排序
**基础排序算法包括冒泡排序、选择排序和插入排序。冒泡排序通过相邻元素比较交换,逐步将最大值“冒”到末尾,平均时间复杂度为O(n^2)。选择排序每次找到剩余部分的最小值与未排序部分的第一个元素交换,同样具有O(n^2)的时间复杂度。插入排序则类似玩牌,将新元素插入到已排序部分的正确位置,也是O(n^2)复杂度。这些算法适用于小规模或部分有序的数据。**
|
5月前
|
算法 搜索推荐
数据结构与算法-插入排序
数据结构与算法-插入排序
31 2
|
5月前
|
算法 搜索推荐 数据可视化
【漫画算法】插入排序:插入宝石的传说
【漫画算法】插入排序:插入宝石的传说
|
5月前
|
人工智能 搜索推荐 JavaScript
心得经验总结:排序算法:插入排序法(直接插入法和希尔排序法)
心得经验总结:排序算法:插入排序法(直接插入法和希尔排序法)
39 0
|
5月前
|
机器学习/深度学习 搜索推荐 算法
【C/排序算法】:直接插入排序和希尔排序
【C/排序算法】:直接插入排序和希尔排序
45 0
|
5月前
|
搜索推荐 算法
排序算法之插入排序
排序算法之插入排序
45 0
|
5月前
|
搜索推荐
排序算法---插入排序-----详解&&代码
排序算法---插入排序-----详解&&代码
下一篇
无影云桌面