冒泡 一
public class bubbleSort {
public bubbleSort(){
int a[]={1,54,6,3,78,34,12,45};
int temp=0;
for(int i=0;i<a.length;i++){
for(int j=i+1;j<a.length;j++){
if(a[i]>a[j]){
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
for(int i=0;i<a.length;i++)
System.out.println(a[i]);
}
}
冒泡 二
public class bubbleSort {
public bubbleSort(){
int a[]={49,38,65,97,76,13,27,49,78,34,12,64,5,4,62,99,98,54,56,17,18,23,34,15,35,25,53,51};
int temp=0;
for(int i=0;i<a.length-1;i++){
for(int j=0;j<a.length-1-i;j++){
if(a[j]>a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(int i=0;i<a.length;i++)
System.out.println(a[i]);
}
}
快速 取中间值 一分二 两边递归
public class quickSort {
inta[]={49,38,65,97,76,13,27,49,78,34,12,64,5,4,62,99,98,54,56,17,18,23,34,15,35,25,53,51};
public quickSort(){
quick(a);
for(int i=0;i<a.length;i++)
System.out.println(a[i]);
}
publicint getMiddle(int[] list, int low, int high) {
int tmp = list[low]; //数组的第一个作为中轴
while (low < high) {
while (low < high && list[high] >= tmp) {
high--;
}
list[low] = list[high]; //比中轴小的记录移到低端
while (low < high && list[low] <= tmp) {
low++;
}
list[high] = list[low]; //比中轴大的记录移到高端
}
list[low] = tmp; //中轴记录到尾
return low; //返回中轴的位置
}
public void _quickSort(int[] list, int low, int high) {
if (low < high) {
int middle = getMiddle(list, low, high); //将list数组进行一分为二
_quickSort(list, low, middle - 1); //对低字表进行递归排序
_quickSort(list, middle + 1, high); //对高字表进行递归排序
}
}
publicvoid quick(int[] a2) {
if (a2.length > 0) { //查看数组是否为空
_quickSort(a2, 0, a2.length - 1);
}
}
}
分享到:
相关推荐
这里我们主要探讨的是使用Java实现的几种经典排序算法,包括直接选择排序、堆排序、冒泡排序、快速排序、直接插入排序、折半插入排序、Shell排序、归并排序、桶式排序和基数排序。这些算法各有特点,适用于不同的...
js冒泡排序的几种写法,如果要面试,可以借鉴一下
结构体排序是 sort 排序的一种重要应用,结构体可以包含多种类型的数据,如字符串、整数、浮点数等。结构体排序可以按照不同的规则进行排序,如按照成绩从高到低排序、按照年龄从大到小排序等。 五、实践应用 sort...
以下是几种常用编程语言的快速排序实现示例。 ##### 1. GO 语言实现 GO 语言提供了多种实现快速排序的方式,包括直接递归实现、尾递归优化等。这里给出两种常见的实现方式: - **第一种写法**:使用双指针技术,...
总之,`NSArray`的排序可以通过多种方式实现,包括`sortedArrayUsingComparator:`、`NSMutableArray`的`sortUsingComparator:`以及`NSSortDescriptor`。选择哪种方法取决于你的具体需求,如是否需要保持原数组不变,...
在"最新冒泡排序c++的写法"中,我们可以探讨以下几个重要的知识点: 1. **冒泡排序的基本原理**:冒泡排序的核心思想是重复遍历待排序的序列,每次遍历时将最大的(或最小的)元素逐渐“冒”到序列的末尾。这个过程...
- 直接插入排序的空间复杂度为O(1),因为它只使用了固定的几个辅助变量,并没有额外的存储空间需求。 ### 五、适用场景及优缺点 - **优点**: - 实现简单,代码量少。 - 空间复杂度低。 - 对于小规模数据排序...
内部排序是计算机科学中一种...总结起来,内部排序是编程和数据结构领域的一个基础主题,涉及多种算法,每种都有其特定的应用场景和优缺点。对于初学者来说,理解和实践这些排序算法有助于提升编程能力和问题解决能力。
以下将详细介绍几种常见的SQL分页查询方法。 1. **Not In / Top 方法** 这种方法通过`NOT IN`子查询配合`TOP`来实现分页。首先,获取需要排除的前n条记录,然后在主查询中排除这些记录,从而得到分页后的结果。...
### C#后台分页及数据库脚本常用的几种分页写法 #### 分页技术概述 在Web开发中,为了提高用户体验以及服务器性能,通常会采用分页技术来展示大量数据。分页技术不仅可以减少单次请求的数据量,降低服务器压力,还...
这两种方法都不会改变查询结果的行,只是改变了排序的依据。这样,无论`status`的值是多少,只要它不等于0,就会按照升序排列,而值为0的记录则被推至末尾。 总结来说,`CASE WHEN`在MySQL排序中的应用能帮助我们...
这个函数需要能够定义排序的规则,它接受两个参数(通常是变量x和y),这两个参数代表数组中的元素,函数需要根据这两个元素返回以下三种值之一: 1. **负整数**:当x小于y时返回; 2. **零**:当x和y相等时返回; ...
这类界面通常包含多个视图、搜索过滤、分组、排序以及多种操作选项,如添加、编辑、删除联系人。在这个场景中,开发者可能面临如何有效地展示大量数据、处理用户输入和响应、优化性能等挑战。 描述中提到的博客链接...
然而,这种写法可能会导致SQLAlchemy生成效率较低的SQL语句,尤其是在处理大量数据时,性能问题尤为明显。这是因为负号实际上是创建了一个隐式的`desc()`函数,但直接使用`desc()`会更清晰且高效。 下面是优化后的...
Python是一种广泛应用于数据分析、机器学习、人工智能等领域的高级编程语言,其简洁的语法使得实现算法变得更为直观。本文将深入探讨2022年整理的Python常用算法大全,包括各种算法的说明和实现方法。 一、排序算法...
CTE广泛应用于各种复杂的查询操作中,包括但不限于以下几种情况: 1. **简化多层嵌套查询**:使用CTE可以将复杂的嵌套查询拆分为多个步骤,每一步作为一个单独的CTE,这样不仅提高了查询的可读性,还便于调试和维护...
这三种方法都可以有效地统计字符串中每种字符的个数并进行排序,但效率上可能会有所差异。第一种方法使用了内置的`array_count_values()`函数,因此可能在处理大量数据时速度较快。而第二、三种方法虽然需要额外的...
文档“常用文体写作答案[字母排序].doc”涵盖了多种文体写作的知识点,涉及科技论文、调查报告、计划、总结、合同、简报等多种常见文体。以下是这些知识点的详细解析: 1. **检索途径**:按学科分类与体系排列是...