`
hunter090730
  • 浏览: 190820 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java 交换排序算法之一

    博客分类:
  • java
阅读更多
public class Test {
/**
* 选择排序法的第一层循环从起始元素开始选到倒数第二个元素,主要是在每次进入的第二层循环之前,
*           (第二层循环从第一层的起始元素+1开始至最后一个元素)
* 将外层循环的下标赋值给临时变量,接下来的第二层循环中,如果发现有比这个最小位置处的元素更小的元素,
* 则将那个更小的元素的下标赋给临时变量,最后,在二层循环退出后,如果临时变量改变,
* 则说明,有比当前外层循环位置更小的元素,需要将这两个元素交换.
*
*/
public static void main(String[] args) {
Test test = new Test();
int[] array = { 6, 5, 9, 3, 4, 0, 7, 1, 8,2 };
// 冒泡
test.bubbleSort(array);
for (int i = 0; i < array.length; i++) {
System.out.print(array[i]);
System.out.print(",");
}
// 122345这六个数字,用java写一个main函数,打印出六位数不同的排列,
// 如:512234,122345等,要求"4"不能在第三位,其不能相连出现35 53不能相连
System.out.println("==pop sort end==");

for (int i = 122345; i <= 543221; i++) {
if (!filter(i)) {// 关键在这里
System.out.println(i);
}
}

}

// bubble 交换排序
public void bubbleSort(int[] array) {
int temp = 0;
for (int i = 0; i < array.length-1; i++) {
for (int j = i + 1; j < array.length; j++) {
if (array[j] < array[i]) {
                                       // 从小到大
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}

}

public static boolean filter(int n) {
String s = "" + n;
if (s.charAt(2) == '4') {
return true;
}
if (s.indexOf("35") != -1 || s.indexOf("53") != -1) {// 以下算法真是妙不可言
return true;
}
int i = s.indexOf("2");

if (i < s.length() - 1 && s.charAt(i + 1) == '2') {
return true;
}
return false;
}
0
0
分享到:
评论

相关推荐

    java排序算法

    java实现的常用的几种基本排序算法,插入、交换、选择、归并

    java多种排序算法的实现

    排序是程序设汁中常见的任务,在数据结构课程中介绍了很多种排序方法,有插入排序、交换排序、选择排序、归并排序、基数排序等。每种排序的效率、稳定性和算法的复杂程度都有所区别。在实际应用中,插入排序和现则...

    JAVA排序算法集合

    1.插入排序(直接插入排序、折半插入排序、希尔排序); 2.交换排序(冒泡泡排序、快速排序); 3.选择排序(直接选择排序、堆排序); 4.归并排序; 5.基数排序

    Java各种排序算法(含代码)

    Java各种排序算法集合: 1)插入排序(直接插入排序、希尔排序) 2)交换排序(冒泡排序、快速排序) 3)选择排序(直接选择排序、堆排序) 4)归并排序 5)分配排序(箱排序、基数排序)

    数据结构java版 排序算法

    总结的不错,值得一看 * 1.插入排序(直接插入排序、折半插入排序、希尔排序);...交换排序(冒泡泡排序、快速排序); * 3.选择排序(直接选择排序、堆排序); * 4.归并排序; * 5.基数排序。

    常用排序算法分析与实现(Java版)

    用java对常用排序算法进行分析与实现.包含: 插入排序 直接插入排序、希尔排序 • 选择排序 简单选择排序、堆排序 • 交换排序 冒泡排序、快速排序 • 归并排序 • 基数排序

    java基础 经典算法之冒泡排序详解

    1.冒泡排序的原理:每次都从第一个元素开始(索引0),向后两两比较,只要后面的比前面的大,就交换(从大到小) 2.通过画图分析,5个数字排4趟,n数字排n-1趟,而外层的for循环代表的是循环的趟数,所以外层循环的结束条件是...

    java实现常见排序算法

    java实现插入排序,交换排序。插入排序包括直接插入排序,折半插入排序和希尔排序。交换排序包括冒泡排序。

    Java排序算法实现:冒泡与选择排序示例代码

    冒泡排序(Bubble Sort) 是一种基本的排序算法,它通过多次遍历数组,比较相邻元素的大小并交换它们,从而使最大(或最小)的元素逐渐移动到数组的最后。冒泡排序的实现在Java中非常简单,通过嵌套的循环来实现相邻...

    JAVA中排序算法分析

    排序算法,JAVA中的快速排序,交换排序,冒泡排序,选择排序等算法的分析

    Java各种排序算法

    Java各种排序算法,1)插入排序(直接插入排序、希尔排序) 2)交换排序(冒泡排序、快速排序) 3)选择排序(直接选择排序、堆排序) 4)归并排序 5)分配排序(箱排序、基数排序) 所需辅助空间最多:归并排序...

    java 内部排序算法的性能分析

    设计一个测试程序比较几种内部排序算法的关键字比较次数和移动次数以取得直观感受。 [需求分析] (1)对起泡排序、直接排序、简单选择排序、快速排序、希尔排序、堆排序算法进行比较; (2)待排序表的表长不小于100...

    java基本排序算法实现

    java基本排序算法实现,包括快速 选择 插入 希尔 堆 冒泡 交换

    Java实现常用排序算法

    实现了四类排序算法,插入排序、交换排序、选择排序、归并排序,详情请看文档,其中 树形选择排序算法--选择排序、 堆排序--选择排序 这两种算法还没实现,有兴趣的自行解决

    java自动测试排序算法性能Work4

    设计一个由自动测试排序算法性能(比较次数compare_count、交换次数exchange_count、探测次数probe_count)的测试类和排序类(至少3个)构成的类体系。 要求:用一个类来描述一个排序算法,类中的sort方法通过调用比较...

    java排序算法集锦

    java排序算法集锦,包括:1.插入排序(直接插入排序、折半插入排序、希尔排序); 2.交换排序(冒泡泡排序、快速排序); 3.选择排序(直接选择排序、堆排序); 4.归并排序; 5.基数排序

    使用Java与Python实现的十大排序算法之冒泡排序

    冒泡排序是最基础的排序算法之一,但它并不是最优的排序算法。 1. 算法思想 冒泡排序是将数据中的每个数与相邻数进行比较并交换,大数往上冒,小数往下沉,每个数都遍历一次后便可以排出顺序。 2. 算法步骤 (1)...

    8中排序算法(java实现)

    以下排序的Java代码实现: 插入排序(直接插入排序、二分法插入排序、希尔排序) 选择排序(简单选择排序、堆排序) 交换排序(冒泡排序、快速排序) 归并排序 基数排序

    java排序算法汇总

    * 排序算法的分类如下: * 1.插入排序(直接插入排序、折半插入排序、希尔排序); * 2.交换排序(冒泡泡排序、快速排序); * 3.选择排序(直接选择排序、堆排序); * 4.归并排序; * 5.基数排序。

Global site tag (gtag.js) - Google Analytics