首页 > 其他分享 >排序

排序

时间:2023-06-22 22:32:14浏览次数:21  
标签:temp int scanf list ++ num 排序

#include  <stdio.h>
#include  <stdlib.h>
#define  MAX  1000

void  printList(int  list[],  int  n) {
	int  i;
	for (i = 0;  i < n;  i++) {
		printf("%d  ",  list[i]);
	}
	printf("\n");
}

void  insertSort(int  list[],  int  n) {
	int i, j, temp;
	for (i = 1; i < n; i++) {
		if (list[i] < list[i - 1]) {
			temp = list[i];
			for (j = i - 1; j >= 0 && list[j] > temp; j--) {
				list[j + 1] = list[j];
			}
			list[j + 1] = temp;
		}
		printList(list, n);
	}
}

void  selectSort(int  list[],  int  n) {
	int i, j, min, num;
	for (j = 0; j < n - 1; j++) {
		min = list[j];
		num = j;
		for (i = j; i < n; i++) {
			if (min > list[i]) {
				min = list[i];
				num = i;
			}
		}
		int t;
		t = list[j];
		list[j] = list[num];
		list[num] = t;
		printList(list, n);
	}
}

void  bubbleSort(int  list[],  int  n) {
	int i, j, temp;
	int flag;
	for (i = 1; i < n; i++) {
		flag = 0;
		for (j = 0; j < n - i; j++) {
			if (list[j] > list[j + 1]) {
				temp = list[j];
				list[j] = list[j + 1];
				list[j + 1] = temp;
				flag = 1;
			}
		}
		if (!flag)
			break;
		printList(list, n);
	}

}

int  main() {
	int  i, n;
	int  a[MAX];
	scanf("%d", &n);
	for (i = 0; i < n; i++) {
		scanf("%d", &a[i]);
	}
	printf("insertSort:\n");
	insertSort(a, n);
	scanf("%d", &n);
	for (i = 0; i < n; i++) {
		scanf("%d", &a[i]);
	}
	printf("selectSort:\n");
	selectSort(a, n);
	scanf("%d", &n);
	for (i = 0; i < n; i++) {
		scanf("%d", &a[i]);
	}
	printf("bubbleSort:\n");
	bubbleSort(a, n);
	return  0;
}

标签:temp,int,scanf,list,++,num,排序
From: https://blog.51cto.com/u_16030624/6535878

相关文章

  • 线段树优化建图 拓扑排序 6.22西安集训T1
    题目链接有一条无限长的数轴,上面有 nn 个坑,第 ii 个坑的位置为 x_ixi​。你将要在数轴上再放置 nn 个球,第 ii 个将要放到的位置为 y_iyi​。每当有一个球被放上去之后,它就会滚落到离它最近的一个坑里并填上那个坑。如果有两个坑都离它最近,那么它会落到左边的里面。现......
  • 冒泡排序 最大的在最后面
    publicclassMaoPao{publicstaticvoidmain(String[]args){//冒泡排序最大的放在最后面//定义一个数组int[]arr={11,99,0,3,5,6,5,3,5,8,1};//前一个数和后一个数比较如果后一个数大放在后面//第一位3和第二位5比较......
  • MyBatis-Plus 实现动态字段排序
    场景虽然前端能根据返回的数组进行对字段的排序,但也仅局限于实现当前页的排序,无法满足全部数据的排序,所以需要走接口的查询进行排序,获取最全的排序数据。业务需求思路前端需传递排序的字段,该字段是正序还是倒叙。可能存在多个,所以字段为字符串数组,可以通过逗号分开。后端拿......
  • 希尔排序的实现
    #include<stdio.h>#include<stdlib.h>typedefintKeyType;typedefstruct{KeyType*elem;/*elem[0]一般作哨兵或缓冲区*/intLength;}SqList;voidCreatSqList(SqList*L);/*待排序列建立,由裁判实现,细节不表*/voi......
  • 插入排序及C语言实现
    一、插入排序原理插入排序是一种简单的排序算法,其基本思想是将未排序序列中的每个元素依次插入到已排序的序列中合适的位置。具体来说,假设待排序的序列为a1,a2,⋯,an,则从a2开始遍历整个序列,将ai插入到前面的已排序序列a1,⋯,ai−1中,直到所有的元素都被插入到已排序的序列中......
  • 自定义机会排序
    publicclassSortTest{privatestaticfinalList<String>technologyOrder=newArrayList<>();privatestaticfinalList<Student>students=newArrayList<>();static{technologyOrder.add("DDD");......
  • 数据结构和算法系列课程(01)--- 排序二叉树和红黑树
    把排序二叉树放在这个系列课程的第一个部分似乎有些唐突,但是考虑到它在面试中出现的可能性,把它放在这样的一个位置也就不足为奇了。关于树和二叉树的基础知识,可以到下面的链接中下载我的课件进行了解。下面给出一个排序二叉树的Java实现:packagcom.loonstudio;/***排序二叉树......
  • MySQL单表查询练习(条件_模糊_分组_聚合_排序)
    练习所用数据表•部门表CREATETABLEDEPT(DEPTNOINTPRIMARYKEY,–部门编号DNAMEVARCHAR(14),–部门名称LOCVARCHAR(13)–部门地址);INSERTINTODEPTVALUES(10,‘ACCOUNTING’,‘NEWYORK’);INSERTINTODEPTVALUES(20,‘RESEARCH’,‘DALLAS’);......
  • 数据结构代码整理_基于邻接表的拓扑排序(C++_DFS_BFS_递归)
    目录Chat图解基于栈实现(dfs)基于队列实现(bfs)基于递归实现(dfs)Chat1.代码所属的类在数据结构代码整理_基于邻接表存储结构的有向图的实现(C++)2.拓扑排序的思想就是不断找入度为0的节点并将其输出并标记,标记后与他相连的节点的入度都会减一,不断进行标记直至所有的节点都被输出为止......
  • 快速排序及C语言实现
    快速排序算法是一种基于“分治思想”的高效排序算法,其原理是将一个可排序序列按照某个基准数划分成两个子序列,其中左边的子序列所有元素均小于等于基准数,右边的子序列所有元素均大于等于基准数,再对左右子序列分别递归执行同样的操作,直到整个序列有序为止。以下是快速排序的C语言......