C语言最简单的排序算法冒泡排序并返回排序前索引序号
C语言最简单的排序算法冒泡排序并返回排序前索引序号
代码如下(示例):
void UserMain(void)
{
int i, j, tmp;
s8 raw[] = {9, 10, 10, -2, 8, 3, 2, -5, 1, 0, -8, 3, 2, 8}; // 需要排序的原始数据
int length = sizeof(raw)/sizeof(s8);
printf("raw_len: %d\n", length);
s8 *num = (s8 *)tls_mem_alloc(length); // 复制需要排序的数据之后排序
// s8 num[] = {9, 10, 10, 2, -8, 3, 2, 5, 1, 0, 8, -3, -2, -8};
printf("raw:\r\n");
for(i = 0;i < length; i++){
num[i] = raw[i];
printf("%d ",num[i]);
}
printf("\n");
s8 *idx = (s8 *)tls_mem_alloc(length); // 用来保存原数组对应的下标序号
// s8 idx[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13};
printf("idx:\r\n");
for(i = 0;i < length; i++){
idx[i] = i;
printf("%d ",idx[i]);
}
printf("\n");
for(j=0; j
{
for(i=0; i
{
if(num[i] < num[i+1])
{
tmp = num[i];
num[i] = num[i+1];
num[i+1] = tmp;
tmp = idx[i];
idx[i] = idx[i+1];
idx[i+1] = tmp;
}
}
}
printf("num:\n");
for(int i=0; i
printf("%d ",num[i]);
printf("\n");
printf("idx:\n");
for(int i=0; i
printf("%d ",idx[i]);
printf("\n");
tls_mem_free(idx);
tls_mem_free(num);
}
如下:
raw_len: 14
raw:
9 10 10 -2 8 3 2 -5 1 0 -8 3 2 8
idx:
0 1 2 3 4 5 6 7 8 9 10 11 12 13
num:
10 10 9 8 8 3 3 2 2 1 0 -2 -5 -8
idx:
1 2 0 4 13 5 11 6 12 8 9 3 7 10
C语言最简单的排序算法冒泡排序并返回排序前索引序号相关教程
普及组2008NOIP 排座椅(排序)
普及组2008NOIP 排座椅(排序) ##1205:排座椅 题目描述 上课的时候总有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情。不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的D对同学上课时会交头接耳。同学
南京邮电大学C语言实验报告3v2(仅供参考)
南京邮电大学C语言实验报告3v2(仅供参考) 一、 实验目的和要求 (1)掌握正确的函数定义与调用,需要时会正确使用函数声明。会正确设置形式参数,理解参数传递及程序的执行流程。 (2)理解各种不同存储类别变量的生命期与作用域 (3)进一步熟悉调试器的使
数据结构---顺序表实验(C语言实现)
数据结构---顺序表实验(C语言实现) 顺序表实验 实验目的 实验内容 问题描述 算法 实验代码示例 程序运行示例 输入无错误信息的情况: 人为制造错误信息的情况: 实验目的 1.掌握线性表的基本原理; 2.掌握顺序表的存储结构; 3.掌握顺序表的创建、查找、插
关于JS数组常用方法的剖析-增删改查、字符串转换、数组排序和其
关于JS数组常用方法的剖析-增删改查、字符串转换、数组排序和其它方法 关于JS数组常用方法的剖析 数组也是对象数据类型的,也是由键值对组成的 var ary = [12,23,34];/* * 结构: * 0:12 * 1:23 * 2:34 * length:3 */1. 以数组作为索引(属性名),索引从零开
if语句的用法是什么
if语句是指编程语言,包括c语言、VB、java、汇编语言等中用来判定所给定的条件是否满足,根据判定的结果决定执行给出的两种操作之一,格式为【if(表达式)语句1 [else语句2]】。 if语句的用法: if语句是指编程语言(包括c语言、C#、VB、java、汇编语言等)
Go语言 | 几种常用的排序算法图文解析
Go语言 | 几种常用的排序算法图文解析 作为一个小项目,我已经使用Go编写了一些著名的排序算法。希望对你有用! 冒泡排序是一种非常容易遵循的算法。你需要遍历数组中的每个元素,以查看它是否更大,如果需要,则需要交换它们。你应该多次执行此任务,最终将
Sorting 排序算法: Insertion Sort 插入排序
Sorting 排序算法: Insertion Sort 插入排序 Sorting 排序算法: Insertion Sort 插入排序 文章目錄 Sorting 排序算法: Insertion Sort 插入排序 簡介 參考 正文 算法思想原理 输入 算法思想 算法流程 算法复杂度分析 Java 实现 結語 比较排序算法的时间复杂度
漫画:为什么C语言永不过时?
漫画:为什么C语言永不过时? 来自:码农翻身(微信号:coderising) 后记:这篇漫画主要是科普一下编程语言的发展历史和适用范围。C语言/C++一直是系统级编程的不二之选,在操作系统,编译器,网络,数据库,高性能服务器端软件等领域无人可以争锋,也许在将