c语言之排序

冒泡排序,每次循环选出一个最大/最小的数在队伍的末端,循环n-1次


 1 # include <stdio.h>
2
3 int main (void)
4 {
5 int a[10];
6 int i, j, t;
7
8 printf("请输入10个整数:");
9
10 for (i=0; i<10; i++)
11 scanf("%d", &a[i]);
12
13 for (i=0; i<9; ++i)
14 {
15 for(j=0; j<9-i; j++) // 后面位置的数据已选择
16 { if (a[j]>a[j+1])
17 { t = a[j];
18 a[j] = a[j+1];
19 a[j+1] = t; //每两个相邻数比较大小,选择出最大的
20 }
21 }
22 }
23
24 for (i=0; i<10; i++)
25 printf("%d ", a[i]);
26
27 printf("\n");
28
29 return 0;
30 }

选择排序,每次循环实现对相应位置的选数过程,循环n-1次


 1 # include <stdio.h>
2
3 int main(void)
4 {
5 int a[10];
6 int i, j, t;
7
8 printf("请输入10个整数:");
9
10 for (i=0; i<10; i++)
11 scanf("%d", &a[i]);
12
13 for(i=0; i<9; i++)
14 { for (j=i+1; j<10; j++) //与其余位置的数据依次进行比较
15 {
16 if(a[i]>a[j])
17 {
18 t = a[i];
19 a[i] = a[j];
20 a[j] = t;
21 }
22 }
23 } // a[i]代表位置
24
25 for (i=0; i<10; i++)
26 printf("%d ", a[i]);
27
28 printf("\n");
29
30 return 0;
31 }

查看程序运行过程中的区别,涉及到单步调试问题

step into:进入子函数内部
step over:越过子函数,但子函数会执行,只显示子函数运行结果
step out:进入到子函数中之后用此命令来跳出子函数

时间: 2024-12-25 21:46:00

c语言之排序的相关文章

c语言 选择排序

选择排序 //    int array[] = {3, 2, 6, 9, 8, 5, 7, 1, 4}; //    int count = sizeof(array) / sizeof(array[0]); // //    for (int i = 0; i < count - 1; i++) { //        int minIndex = i; //        for (int j = minIndex + 1; j < count; j++) { //           

C语言常用排序全解(转)

目的:重温经典排序思想,并用C语言指针实现排序算法================================================*/ /*=============================================================================相关知识介绍(所有定义只为帮助读者理解相关概念,并非严格定义):1.稳定排序和非稳定排序  简单地说就是所有相等的数经过某种排序方法后,仍能保持它们在排序之前的相对次序,我们就说这种排序方法

GO语言练习:第一个Go语言工程--排序

1.代码 2.编译 3.运行 1.代码框架 /home/fengbo/sorter $ tree . ├── bin ├── pkg ├── readme.txt └── src ├── algorithms │   ├── bubblesort │   │   ├── bubblesort.go │   │   └── bubblesort_test.go │   └── qsort │   ├── qsort.go │   └── qsort_test.go └── sorter └── s

go语言的排序和搜索

晚上准备动手写点 go 的程序的时候,想起 go 如何排序的问题.排序 sort 是个基本的操作,当然搜索 search 也是.c 提供一个 qsort 和 bsearch,一个快排一个二分查找,不过是使用起来都不方便: c++ 中的 sort 貌似很不错,因为 c++ 支持泛型(或是说模板),所以很多东西使用起来很方便.go 是通过 sort 包提供排序和搜索,因为 go 暂时不支持泛型(将来也不好说支不支持),所以,go 的 sort 和 search 使用起来跟类型是有关的,或是需要像 c

go语言的排序、结构体排序

原文:https://studygolang.com/articles/1598 晚上准备动手写点 go 的程序的时候,想起 go 如何排序的问题.排序 sort 是个基本的操作,当然搜索 search 也是.c 提供一个 qsort 和 bsearch,一个快排一个二分查找,不过是使用起来都不方便: c++ 中的 sort 貌似很不错,因为 c++ 支持泛型(或是说模板),所以很多东西使用起来很方便.go 是通过 sort 包提供排序和搜索,因为 go 暂时不支持泛型(将来也不好说支不支持),

C语言选择排序

#include <stdio.h> //选择排序 void selectSort(int a[],int len){          //外层循环控制趟数,每一趟把一个最小数放到没有排序的序列第一个位置     int min;//保存最小的数的下标     for (int i=0; i<len-1; i++) {                  //假设一个最小值         min = i;                  //找实际的最小值的下标         fo

C语言 链表排序

1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <assert.h> 4 5 typedef struct node{ 6 int data; // 存放数据 7 struct node* next; // 下一节点 8 }ListNode; 9 10 extern int CSort(); 11 12 ListNode *root = NULL;// 13 14 int main(int argc, char

C语言 &#183; 身份证排序

算法提高 身份证排序 时间限制:1.0s   内存限制:256.0MB 问题描述 安全局搜索到了一批(n个)身份证号码,希望按出生日期对它们进行从大到小排序,如果有相同日期,则按身份证号码大小进行排序.身份证号码为18位的数字组成,出生日期为第7到第14位 输入格式 第一行一个整数n,表示有n个身份证号码 余下的n行,每行一个身份证号码. 输出格式 按出生日期从大到小排序后的身份证号,每行一条 样例输入 5466272307503271156215856472207097978234804580

C语言——选择排序

---恢复内容开始--- 算法思想: n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果: ①初始状态:无序区为R[1..n],有序区为空. ②第1趟排序 在无序区R[1..n]中选出关键字最小的记录R[k],将它与无序区的第1个记录R[1]交换,使R[1..1]和R[2..n]分别变为记录个数增加1个的新有序区和记录个数减少1个的新无序区. -- ③第i趟排序 第i趟排序开始时,当前有序区和无序区分别为R[1..i-1]和R(i..n).该趟排序从当前无序区中选出关键字最小的记