`
lengreen1221
  • 浏览: 3667 次
  • 性别: Icon_minigender_1
  • 来自: 南昌
最近访客 更多访客>>
社区版块
存档分类
最新评论

单词冒泡排序算法

阅读更多

测试单词序列:cusmattribute5:applydate:hostserialno:productcode:clearbrno:banksystype:brno:tellerno:

terminalno:accbrno:bankdate:bankid:banktime:bankstatus:bankdealcode:bankdealmsg:

draccbrnolist:craccbrnolist:dracnolist:cracnolist:accamount:accamount1:accamount2:

accamount3:acctid:flowtype:workdate:agentserialno:tradestep:origapplydate:orighostserialno:

origbankdate:origbankid:crtdatetime:altdatetime:prduattribute1:prduattribute2:prduattribute3:

prduattribute4:prduattribute5:checkresult:cusmattribute1:cusmattribute2:cusmattribute3:

cusmattribute4:

排序后序列:

accamount1:accamount2:accamount3:accamount:accbrno:acctid:agentserialno:altdatetime:

applydate:bankdate:bankdealcode:bankdealmsg:bankid:bankstatus:banksystype:banktime:

brno:checkresult:clearbrno:craccbrnolist:cracnolist:crtdatetime:cusmattribute1:cusmattribute2:

cusmattribute3:cusmattribute4:cusmattribute5:draccbrnolist:dracnolist:flowtype:hostserialno:

origapplydate:origbankdate:origbankid:orighostserialno:prduattribute1:prduattribute2:

prduattribute3:prduattribute4:prduattribute5:productcode:tellerno:terminalno:tradestep:

workdate:

算法源码

 

private static String[] sort(String[] strarr) {
	for (int i = 0; i < strarr.length; i++) {
		for (int j = strarr.length - 1; j > i; j--) {
			exchange(strarr, j, 0, 'd');
		}
	}
	return strarr;
}

private static void exchange(String[] arr, int j, int level, char desc) {
	if (!arr[j].equals(arr[j - 1])) {
		String tmp;
		char cur = 0;
		char pre = 0;
		if (level < arr[j].length()) {
			cur = arr[j].charAt(level);
		} else {
			cur = arr[j].charAt(arr[j].length() - 1);
		}
		if (level < arr[j - 1].length()) {
			pre = arr[j - 1].charAt(level);
		} else {
			pre = arr[j - 1].charAt(arr[j - 1].length() - 1);
		}
		switch (desc) {
		case 'd':
			if (cur < pre) {
				tmp = arr[j];
				arr[j] = arr[j - 1];
				arr[j - 1] = tmp;
			} else if (cur == pre) {
				exchange(arr, j, ++level, desc);
			}
			break;
		case 'a':
			if (cur > pre) {
				tmp = arr[j];
				arr[j] = arr[j - 1];
				arr[j - 1] = tmp;
			} else if (cur == pre) {
				exchange(arr, j, ++level, desc);
			}
			break;
		}
	}
}
String[] s = sb.toString().split(":");
for (int j = 0; j < s.length; j++) {
	System.out.println(s[j]);
}
 

 

1
3
分享到:
评论

相关推荐

    C语言 单词排序 轻松实现

    本程序使用了C语言的经典数据结构——字符串数组和整型数组,结合冒泡排序算法实现了对字符串数组的排序。这种排序方式简单易懂,适合初学者学习和理解。通过本程序的学习,可以更好地掌握字符串处理和基本排序算法...

    C语言实现英文文章排序(字典顺序):对含有多个单词的英文文章,可选择多个排序算法,将所有单词按字典顺序排序,并实时显示各个排序算

    本项目的主要目标是编写程序,将一篇含有多个单词的英文文章中的所有单词按照字典顺序排列,同时支持不同排序算法的选择,如冒泡排序、插入排序、选择排序、快速排序、归并排序等,以对比它们的效率。 首先,我们...

    冒泡排序Java 代码实现

    作为最简单的排序算法之一,冒泡排序给我的感觉就像 Abandon 在单词书里出现的感觉一样,每次都在第一页第一位,所以最熟悉。冒泡排序还有一种优化算法,就是立一个 flag,当在一趟序列遍历中元素没有发生交换,则...

    C语言的单词排序

    C语言标准库中没有内置的排序函数,但我们可以使用经典的排序算法,如冒泡排序、插入排序、选择排序,或者更高效的快速排序、归并排序等。这里推荐使用快速排序,因为它在大多数情况下表现出良好的性能。在排序过程...

    DisorderOfWord_Javaword单词重新排序_

    此外,开发者也可能使用自定义排序算法,如快速排序、冒泡排序等,根据特定需求进行定制。 5. **文件操作**: 数据的写入可能使用了`FileWriter`和`BufferedWriter`,将排序后的单词重新写入文件。这有助于保存...

    java排序.txt

    - **定义**:冒泡排序是一种简单的排序算法,重复走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复进行的,直到没有再需要交换,也就是说该数列已经排序完成。 - *...

    字符串排序

    本案例采用了一种基于递归的冒泡排序算法来对字符串进行排序。 #### 三、具体代码解析 ##### 3.1 类定义与主函数 ```java public class chuan { public static void main(String[] args) { String s = ...

    字符串逆序和排序算法程序java实现源码

    这里提到的Sorting.java很可能包含了各种排序算法的实现,如冒泡排序、选择排序、插入排序、快速排序、归并排序等。这些算法在不同的场景下各有优劣,比如冒泡排序简单但效率低,快速排序则在平均情况下拥有较好的...

    字符过滤并排序

    接着,我们引入冒泡排序算法。冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列...

    算法-单词排序(信息学奥赛一本通-T1185)(包含源程序).rar

    2. **排序算法**:单词排序的核心是排序算法。常用的有冒泡排序、选择排序、插入排序、快速排序、归并排序等。在信息学竞赛中,通常会要求使用效率较高的算法,如快速排序或归并排序。理解这些算法的工作原理和时间...

    在Java的句子数组中,应使用哪种排序算法按字母顺序对单词进行排序? 谢谢azbilegt chuluunbat

    在Java编程语言中,对字符串数组进行排序时,有多种排序算法可供选择,特别是当我们的目标是按字母顺序对单词进行排序时。这里我们将探讨几种常见的排序算法,并分析它们的性能和适用场景。 1. **冒泡排序**: ...

    排序算法专题练习1.docx

    冒泡排序是一种简单的排序算法,它重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字...

    使用排序算法解决实际问题,初步体会文件的输入输出

    1. **排序算法**:排序算法是计算机科学中最基本的数据处理技术之一,其目的是对一组数据进行排列,常见的排序算法有冒泡排序、选择排序、插入排序、快速排序、归并排序和堆排序等。在实际问题中,如处理学生成绩...

    c语言实现电子辞典的排序查找

    1. **排序**:读取"words.txt",使用冒泡排序算法对单词进行排序,然后将排序后的结果写入"wordsnew.txt"。 2. **查找**:当用户输入单词,程序会读取"wordsnew.txt",使用二分查找算法找到单词的位置,然后显示相关...

    Ordenacao_Atraves_de_Codigo_Bolha:该代码使用.txt文件按字母顺序对单词进行排序(我的全部作者身份代码)

    标题中的“Ordenacao_Atraves_de_Codigo_Bolha”是指一种使用冒泡排序算法对文本文件中的单词进行排序的程序。在这个项目中,作者利用Java编程语言实现了这个功能,以便将一个包含多个单词的.txt文件按字母顺序重新...

    暴力美学-排序1

    例如,对单词首字母排序时,保持原顺序的排序算法是稳定的。选择排序和冒泡排序在原版实现中都是稳定的,但如果改变选择排序中的比较规则,或者在冒泡排序中不正确地处理相等元素,它们就可能变为不稳定的排序算法。...

    C语言课设之英文词典排版系统.doc

    (5)排序算法:系统使用冒泡排序算法来对单词进行排序。 (6)指针数组:系统使用指针数组来存储单词信息,并对其进行排序和存储。 (7)菜单设计:系统使用菜单来选择不同的功能,例如添加新单词、删除单词、...

    ab.rar_C 字典排序

    通过使用`strcmp()`,我们可以编写一个自定义的排序函数,例如冒泡排序、选择排序或快速排序,来对单词数组进行排序。 首先,我们需要读取"word.txt"文件中的每一行,通常使用`fopen()`打开文件,`fgets()`读取每一...

Global site tag (gtag.js) - Google Analytics